<chapter id="cupsoptions-presently-outside-kcontrol"> <title>Параметры &CUPS;, пока не доступные из <application>Центра управления &kde;</application>.</title> <para>В данной главе описывается, как можно изменить параметры &CUPS;, которые пока ещё недоступны через графический интерфейс.</para> <sect1> <title>Возможности &CUPS;</title> <para>&tdeprint; поддерживает все наиболее часто используемые возможности &CUPS;.</para> <itemizedlist> <listitem> <para>Он позволяет добавлять и удалять принтеры, изменять их свойства, настраивать, проверять и т. д.</para> </listitem> <listitem> <para>Возможно также управление печатью отдельных документов: отмена печати, приостановка, возобновление, перемещение задания в очередь другого принтера.</para> </listitem> <listitem> <para>Настройка &CUPS; без использования <application>Центра управления &kde;</application>.</para> </listitem> </itemizedlist> </sect1> <sect1 id="where-to-find-further-chupshelp"> <title>Получение справки по системе &CUPS; во время работы с ней</title> <para>Большую часть сведений о системе &CUPS; можно получить с помощью любого веб-браузера (даже текстового). Для этого введите в браузере адрес <ulink url="http://localhost:631/">http://localhost:631/</ulink>, и вам будет предоставлена ссылка на имеющуюся на вашем компьютере документацию по &CUPS; (в форматах <acronym>HTML</acronym> и <acronym>PDF</acronym>).</para> <para>Для настройки &CUPS; помимо &tdeprint; можно использовать также веб-браузер и множество программ, запускаемых из командной строки. Программы, запускаемые из командной строки, предоставляют наиболее широкие возможности по настройке &CUPS;. При настройке с помощью браузера возможности несколько ограничены. </para> <para>&tdeprint;, как и веб-браузер, не позволяет контролировать все настройки &CUPS;, т.к. по мере разработки &CUPS; новые возможности добавляются сначала в программы, вызываемые из командной строки. После установки &CUPS; рекомендуется обновить документацию к ней, так как в документации содержатся сведения о новых возможностях.</para> <tip> <para>В зависимости от того, каким образом вы обновляли &CUPS;, ваш файл с настройками, возможно, обновлён не был; по этой причине новая, более мощная версия &CUPS;, вероятно, не будет использовать все имеющиеся возможности, т.к. они не будут включены в файле настройки.</para> </tip> <para>Полный список имеющихся файлов и документации всегда можно найти в Руководстве по администрированию &CUPS; (<ulink url="http://localhost:631/sam.html#FILES">http://localhost:631/sam.html#FILES</ulink>). В строке адреса браузера &konqueror; введите <userinput>man:/lpadmin</userinput> или <userinput>man:/cupsd.conf</userinput>, чтобы получить справку по самым важным командам и по формату файла настройки соответственно. В документах, которые отобразит &konqueror;, также будут содержаться ссылки на другие файлы справки и дополнительную документацию.</para> <sect2> <title>Другие источники информации о &CUPS;</title> <para>Чтобы найти установленную в вашем компьютере документацию по &CUPS;, воспользуйтесь следующей командой: </para> <screen><prompt>vasiliy@dom:~ ></prompt> <userinput><command>apropos</command> <parameter>cups</parameter></userinput> <computeroutput> cups-calibrate (8)- ESP Printer Calibration Tool lpstat (1) - print cups status information cups-lpd (8) - receive print jobs + report printer status to lpd clients classes.conf (5) - class configuration file for cups backend (1) - cups backend transmission interfaces filter (1) - cups file conversion filter interfaces cups-polld (8) - cups printer polling daemon mime.types (5) - mime type description file for cups cupsd (8) - common unix printing system daemon lpadmin (8) - configure cups printers and classes cupsd.conf (5) - server configuration file for cups mime.convs (5) - mime type conversion file for cups printers.conf (5) - printer configuration file for cups mime.convs (5) - mime type conversion file for cups cups-polld (8) - cups printer polling daemon lpstat (1) - print cups status information backend (1) - cups backend transmission interfaces mime.types (5) - mime type description file for cups cupsd (8) - common unix printing system daemon lpadmin (8) - configure cups printers and classes printers.conf (5) - printer configuration file for cups cupsd.conf (5) - server configuration file for cups filter (1) - cups file conversion filter interfaces </computeroutput></screen> </sect2> </sect1> <sect1 id="tips-and-tricks-for-cups"> <title>Настройка &CUPS; из командной строки</title> <para>Ниже приведены некоторые возможности, которые доступны только с помощью команд, запускаемых из командной строки. </para> <sect2> <title>Разрешение и запрещение доступа к принтеру отдельным пользователям</title> <para>При установке принтера (или изменении его свойств) с помощью команд, запускаемых из командной строки, вы можете разрешить или запретить отдельному пользователю доступ к заданному принтеру. Для этого воспользуйтесь следующей командой:</para> <screen><userinput><command>lpadmin</command> <option>-p</option><parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>allow:vasiliy,masha,lena</parameter> <option>-E</option> <option>-P</option> <parameter>/home/vasiliy/PPDs/DVHV.ppd</parameter></userinput></screen> <para>С помощью такой команды вы разрешите доступ к принтеру только трём указанным пользователям. Если какой-либо другой пользователь попытается воспользоваться этим принтером, ему будет показано сообщение об ошибке.</para> <screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>deny:vladimir,boss,ivan</parameter> <option>-E</option> <option>-P</option> <parameter>/home/vasiliy/PPDs/DVHV.ppd</parameter></userinput></screen> <para>С помощью этой команды вы запретите доступ к принтеру только трём указанным пользователям, таким образом разрешая его всем остальным. Если пользователь, доступ которому запрещён, попытается воспользоваться этим принтером, ему будет показано сообщение об ошибке.</para> <note> <para>На данный момент невозможно использование обоих вышеприведённых вариантов одновременно; в будущих версиях такая возможность будет реализована с помощью объединения пользователей в группы.</para> </note> </sect2> <sect2> <title>Задание ограничений на использование отдельных принтеров</title> <para>Иногда бывает необходимо установить ограничение на использование определённого принтера. Например, вам может понадобиться задать максимальное количество страниц или максимальный объём данных, который пользователи могут выводить на данном принтере.</para> <para>Задать ограничения на количество страниц или объём данных можно во время установки принтера или впоследствии, при его настройке. Для этого воспользуйтесь ключом <option>-o</option> команды <command>lpadmin</command>. Ниже приведены дополнительные сведения по заданию ограничений (на момент написания данного руководства в официальной документации по &CUPS; данные сведения отсутствовали):</para> <itemizedlist> <listitem> <para>&CUPS; позволяет задать ограничения на количество страниц и на объём данных, которые пользователи могут выводить на каждом установленном принтере.</para> </listitem> <listitem> <para>Ограничения действуют для всех, однако задаются исходя из расчёта на одного пользователя.</para> </listitem> <listitem> <para>При использовании ограничений на количество страниц учитываются также и разделительные страницы (если они используются).</para> </listitem> <listitem> <para>Таким образом, например, возможно установить ограничение в 20 страниц в день для каждого пользователя определённого принтера; однако нельзя установить ограничение для всех за исключением пользователей <systemitem class="username">Vasiliy</systemitem> и <systemitem class="username">root</systemitem>.</para> </listitem> <listitem> <para>Для настройки ограничений воспользуйтесь ключами <option>job-k-limit</option>, <option>job-page-limit</option> и <option>job-quota-period</option>.</para> </listitem> <listitem> <para>Ключ <option>job-quota-period</option> позволяет задать промежуток времени, в течение которого ограничение действует (данное значение указывается в секундах; так, в одних сутках 60x60x24 = 86400 секунд, в одной неделе - 60x60x24x7 = 604800, а в месяце - 60x60x24x30 = 2592300).</para> </listitem> <listitem> <para>Для включения ограничений необходимо, чтобы указанный промежуток времени, <emphasis>а также</emphasis> по крайней мере одно заданное значение (количество страниц или объём данных) было ненулевым.</para> </listitem> <listitem> <para>Если параметр <option>job-k-limit</option> равен нулю (он равен нулю по умолчанию), это означает, что ограничение снято.</para> </listitem> <listitem> <para>Если параметр <option>job-page-limit</option> равен нулю (он равен нулю по умолчанию), это означает, что ограничение снято.</para> </listitem> <listitem> <para>Если параметр <option>job-quota-period</option> равен нулю, это означает, что счётчик напечатанных страниц или объёма данных не будет сбрасываться через определённый промежуток времени (то есть система будет учитывать все напечатанные страницы с начала использования).</para> </listitem> </itemizedlist> <sect3> <title>Примеры правильного использования программы lpadmin:</title> <para>В данном примере задаётся как ограничение на объём данных, так и промежуток времени, через который счётчик выведенных данных следует сбрасывать:</para> <screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_4850</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen> <para>Таким образом для каждого пользователя принтера <systemitem class="resource">danka_infotec_4850</systemitem> устанавливается предел в 1 Мб данных в неделю.</para> <screen><userinput><command>lpadmin</command> <option>p</option> <parameter>danka_infotec_4105</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen> <para>Таким образом для каждого пользователя принтера <systemitem class="resource">danka_infotec_4105</systemitem> устанавливается предел в 100 страниц в неделю.</para> <screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P450</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen> <para>Таким образом для каждого пользователя принтера <systemitem class="resource">danka_infotec_P450</systemitem> устанавливается предел одновременно в 1 Мб в неделю и в 100 страниц в неделю. За одну неделю пользователь не сможет напечатать ни больше одного мегабайта, ни больше ста страниц.</para> </sect3> <sect3> <title>Примеры неправильного использования программы lpadmin:</title> <para>Ниже приведены примеры <emphasis>неправильного</emphasis> использования программы lpadmin (в каждом случае не указан один из двух необходимых параметров: промежуток времени и ограничение по количеству страниц или объёму данных):</para> <screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P320</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter></userinput> <userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_FullColor</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput> <userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_HiSpeed</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen> </sect3> <sect3> <title>Сообщения об ошибках</title> <para>При превышении установленного ограничения на количество страниц или объём данных пользователю будет показано сообщение об ошибке (<errortype>client-error-not-possible</errortype>).</para> </sect3> </sect2> <sect2> <title>Поддержка печати из &Windows; (так называемых <quote>raw</quote> принтеров)</title> <para>Для того, чтобы &CUPS; поддерживал печать необрабатываемых (<quote>raw</quote>) документов с компьютеров, работающих под управлением &Windows;, для каждого принтера, на котором предполагается печатать, необходимо отключить обработку печатаемых документов. Для этого воспользуйтесь командой <command>lpadmin</command> (причём указывать файл &PPD; не следует):</para> <screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>Raw_Danka_infotec</parameter> <option>-E</option> <option>-v</option> <parameter>lpd://10.160.16.137/PORT1</parameter></userinput></screen> <para>Под необрабатываемыми (raw) очередями понимается то, что файл, отправленный на печать, никак не преобразуется в другой формат. Это нужно, например, когда клиенты &Windows; печатают через &CUPS; на <acronym>PCL</acronym>-принтер, открытый для клиентского доступа Samba-сервером. В этом случае &Windows;-драйвер принтера сгенерирует уже готовый к печати документ, и &CUPS; не будет сам обрабатывать печатаемый документ. Это бы только испортило сам документ. Поэтому существует возможность использовать команду <quote><command>lpadmin</command> без &PPD;</quote>, чтобы &CUPS; не осуществлял никакой обработки документа.</para> </sect2> </sect1> <sect1 id="troubleshooting-cups"> <title>Разрешение проблем &CUPS; с помощью &tdeprint;</title> <para>Данный раздел руководства по &tdeprint; составлен из вопросов пользователей &tdeprint;, а также ответов на них других пользователей.</para> <sect2> <title>Сообщения об ошибках</title> <qandaset> <qandaentry> <question> <para>Что означает сообщение <errortype>client-error-bad-request</errortype>?</para> </question> <answer> <para>&CUPS; не может обработать файл, который пользователь послал на печать. Такое сообщение часто появляется при посылке <quote>пустого</quote> файла.</para> </answer> </qandaentry> <qandaentry> <question> <para>Что означает сообщение <errortype>client-error-not-possible</errortype>?</para> </question> <answer> <para>Пользователь не имеет достаточных привилегий для печати на данном принтере. Возможно также, что пользователь превысил установленные ограничения (объём данных или количество страниц).</para> </answer> </qandaentry> <qandaentry> <question> <para>Что означает сообщение <errortype>client-error-not-found</errortype>?</para> </question> <answer> <para>Пользователь пытается получить доступ к несуществующем ресурсу сервера &CUPS;; например, он может попытаться напечатать несуществующий файл, или доступ к файлу может быть запрещён.</para> </answer> </qandaentry> </qandaset> </sect2> <sect2> <title>Вопросы и ответы</title> <qandaset> <qandaentry> <question> <para>Возможна ли повторная печать уже выполненных заданий?</para> </question> <answer> <para>Повторная печать выполненных заданий возможна. Для этого в файл <filename>/etc/cups/cupsd.conf</filename> необходимо добавить следующую строку: set <userinput>PreserveJobFiles True</userinput>.</para> </answer> </qandaentry> <qandaentry> <question> <para>Как отключить список выполненных заданий, отображаемый при настройке с помощью веб-браузера?</para> </question> <answer> <para>Данный раздел руководства ещё не готов.</para> </answer> </qandaentry> <qandaentry> <question> <para>Как ведётся учёт напечатанных страниц?</para> </question> <answer> <para>Для учёта напечатанных страниц &CUPS; обрабатывает каждый документ фильтром <quote>pstops</quote>. Результат работы этого фильтра можно перенаправить на обработку другим фильтрам (например pstoraster, а после него - rastertopcl) или послать прямо на печать (если принтер поддерживает команды &PostScript;).</para> <para>Учёт страниц ведётся как для сетевых принтеров, так и для принтеров, подключённых с помощью параллельного или последовательного портов, а также с помощью <acronym>USB</acronym>. Для правильной работы pstops необходимо, чтобы на вход ему подавались команды &PostScript; в формате <acronym>DSC</acronym> (Document Structuring Convention - стандартная структура документа). При выводе каждой страницы pstops записывает сведения о ней (время печати, имя пользователя, номер и название задания, адрес принтера, количество копий, объём данных) в файл <filename>/var/log/cups/page_log</filename>.</para> <para>Примечание: хотелось бы изменить программу <quote>webalizer</quote> таким образом, чтобы она читала файл page_log и выводила сведения о количестве напечатанных каждым пользователем страниц. Кто-нибудь возьмётся помочь?</para> <para>Ошибки при учёте страниц могут возникать в следующих случаях:</para> <itemizedlist> <listitem> <para>Бумага застряла в принтере, и выполнение задания было автоматически отменено (выполнение задания также может быть отменено, если данные поступают в неверном формате).</para> </listitem> <listitem> <para>Количество страниц, которое &CUPS; отображает для каждого необрабатываемого документа, напечатанного из &Windows;, равно единице.</para> </listitem> </itemizedlist> <para>Таким образом, учёт напечатанных страниц в &CUPS; не всегда абсолютно точен, а может быть и вовсе неточен. Единственный счётчик страниц, который может предоставить точные сведения, находится в самом принтере. Только немногие принтеры позволяют получить данные с этого счётчика по протоколу <acronym>SNMP</acronym> (Simple Network Management Protocol - протокол управления сетями). К сожалению, в крупных сетях с большим количеством принтеров не существует абсолютно надёжного средства учёта страниц.</para> </answer> </qandaentry> <qandaentry> <question> <para>Почему учёт страниц не работает при печати из &Windows;?</para> </question> <answer> <para>Драйверы принтеров, поставляемые с &Windows;, посылают документ на печать в формате, готовом к отправке на принтер. Обработка таких данных с помощью фильтра невозможна. (Так как pstops - фильтр, производящий подсчёт страниц - работает только с данными в формате &PostScript;.) Для каждого необрабатываемого документа, напечатанного из &Windows;, количество страниц устанавливается в единицу.</para> </answer> </qandaentry> <qandaentry> <question> <para>Как получить список доступных настроек принтера или файла &PPD;?</para> </question> <answer> <para>Обратитесь к документации по команде <command>lpoptions</command>. Эта команда позволяет получить список настроек любого доступного принтера (подключённого к вашему компьютеру или сетевого).</para> <para>Команда такого вида: <userinput><command>lpoptions</command> <option>-p</option> <parameter>HitachiDDP70MicroPress</parameter> <option>-l</option></userinput> - позволяет получить список доступных настроек принтера HitachiDDP70MicroPress (настройки читаются из файла &PPD;). При этом система &CUPS; должна быть включена как на удалённом компьютере, так и на локальном.</para> </answer> </qandaentry> <qandaentry> <question> <para>Как интерпретировать полученный список настроек?</para> </question> <answer> <para>Обычно драйвер принтера показывает настройки в удобочитаемом виде. Однако иногда бывает необходимо изменить какой-либо параметр, который не входит в стандарт &PostScript;. Ниже приведён пример изменения такого нестандартного параметра.</para> <para>Принтер Hitachi DDP70 позволяет печатать с двух сторон. Необходимо узнать, как включить режим двусторонней печати. Следует ли использовать параметр <quote>duplex</quote>, <quote>Duplex</quote> или что-либо другое? Чтобы получить ответ на этот вопрос, воспользуйтесь командой такого вида:</para> <screen><userinput><command>lpoptions</command> <option>-h</option> <parameter>transmeta</parameter> <option>-p</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-l</option> | <command>grep</command> <parameter>uplex</parameter></userinput></screen> <para>Будет выведена следующая строка:</para> <screen><computeroutput>TR-Duplex/Duplex: False *True</computeroutput></screen> <para>Её следует понимать таким образом:</para> <itemizedlist> <listitem> <para>название нужного нам параметра - <option>TR-Duplex</option>;</para> </listitem> <listitem> <para>после косой черты указан перевод этого параметра (<quote>Duplex</quote>); таким вы будете его видеть при настройке с помощью графической среды или веб-браузера;</para> </listitem> <listitem> <para>этому параметру можно присвоить два значения: <parameter>False</parameter> (выключено) или <parameter>True</parameter> (включено);</para> </listitem> <listitem> <para>сейчас значение этого параметра - <parameter>True</parameter> (включено); текущее значение отмечено звёздочкой <literal>*</literal>.</para> </listitem> </itemizedlist> <para>Чтобы временно изменить данное значение и напечатать документ только на одной стороне, воспользуйтейсь такой командой: </para> <screen><userinput><command>lpr</command> <option>-P</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-o</option> <parameter>TR-Duplex=False</parameter> <parameter>/путь/к/печатаемому/документу</parameter></userinput></screen> </answer> </qandaentry> <qandaentry> <question> <para>Как получить список доступных настроек в удобочитаемом виде?</para> </question> <answer> <para>Для этого необходимо воспользоваться командой <command>lphelp</command>. (На момент написания данного руководства документация по команде <command>lphelp</command> отсутствует.)</para> <screen><userinput><command>lphelp</command> <parameter>infotecP450</parameter></userinput></screen> <para>Эта команда предоставит вам список всех доступных параметров заданного принтера в убодочитаемом виде, а также укажет значение и способ применения каждого из них. Вы также можете получить список параметров сразу нескольких принтеров:</para> <screen><userinput><command>lphelp</command> <parameter>infotec7410color</parameter> <parameter>DANKA_fullcolor_D2000</parameter> <parameter>HP_ColorLaserJet8550</parameter></userinput></screen> <para>Вместо названия принтера также можно указать файл &PPD;:</para> <screen><userinput><command>lphelp</command> <filename>/home/vasiliy/PPDs/HP-ColorLaserJet8550.ppd</filename></userinput></screen> </answer> </qandaentry> </qandaset> </sect2> <sect2> <title>Разрешение проблем</title> <para>Ниже приведён список наиболее часто встречающихся проблем:</para> <qandaset> <qandaentry> <question> <para>Неверно работает принтер <quote>3-lp-duplex</quote>.</para> </question> <answer> <para>Названия принтеров должны начинаться с буквы и могут быть длиной до 128 символов. Допускается использование букв латинского алфавита, цифр и знаков подчёркивания. Использование дефисов может стать причиной неверной работы принтера. Также следует учесть, что в названиях принтеров не имеет значения, являются ли буквы строчными или прописными. Таким образом, название <systemitem class="resource">Best_of_Danka</systemitem> идентично названию <systemitem class="resource">best_of_danka</systemitem> или <systemitem class="resource">BEST_OF_DANKA</systemitem>.</para> </answer> </qandaentry> <qandaentry> <question> <para>Не удаётся получить удалённый доступ к принтеру, подключённому к компьютеру под управлением &Windows;. Выдаётся сообщение <errortype>Unable to connect to SAMBA host: Success</errortype>.</para> </question> <answer> <para>Убедитесь, что у вас есть соответствующие привилегии для печати на этом принтере.</para> </answer> </qandaentry> <qandaentry> <question> <para>Файлы, которые были посланы на печать на принтер <systemitem class="resource">lp</systemitem>, иногда странным образом исчезают, а потом печатаются на совершенно другом принтере.</para> </question> <answer> <para>Название <systemitem class="resource">lp</systemitem> скорее всего также используется другими, поэтому при включённом параметре <quote>ImplicitClasses On</quote> &CUPS; будет рассматривать все принтеры с одинаковыми именами как принадлежащие к одному классу. Таким образом, документ будет послан первому же доступному принтеру.</para> <para>Чтобы избежать такой ситуации, давайте сетевым принтерам уникальные имена. (Не забывайте также, что при неправильной настройке любой принтер, подключённый к компьютеру, может стать доступен всей сети.)</para> </answer> </qandaentry> </qandaset> </sect2> </sect1> </chapter>