Використання друку в linux, howto

Цей документ описує як використовувати лінійну систему принтерного спулінга поставляється з операційною системою Linux. Цей документ є supplementary документом до Linux Printing Setup HOWTO, який обговорює установку і настройку системи друку Linux. Матеріал представлений в цьому документі повинен бути також правильним для всіх родин операційних систем серії BSD в додаванні до операційної системи Linux.

1.1 Історія Linux Printing HOWTO

Зауваження від Mark Komarinski :

Я хочу поблагадоріть Matt Foster за зроблену роботу в переписуванні цього документа. Я зберігаю його стиль, і додаю, коли це необхідно щоб все було оновленим.

Ця версія Linux Printing HOWTO повністю переписана з оригінальною, створеної Grant Taylor і Brian McCauley . Я постарався зберегти охоплення матеріалу представленого в документі Grant'а and Brian'а, але я рішуче змінив стиль подання і глибину охоплює матеріалу. Я відчув, що це робить документ більш повним і легким для читання. Я можу сподіватися, що ви згодні з цим.

1.2 Історія версій

v1.2.2
  • Переіндексувати, зміни для приміщення в нову документацію RedHat. Дякую Ed!
v1.2.1
  • Оновлення, деякі зміни для Dr. Linux publication
v1.2
  • Windows Принтери
  • Зміни максимального розміру друкованих файлів
v1.11
  • Новий координатор!
  • Додана інформація про lpc
  • Додана деяка інформація про труднощі
  • Друк графічних файлів!
v1.0
  • Перший публічний випуск Printing Usage HOWTO

1.4 Отримання | завантаження the Linux Printing HOWTOs

1.5 Зворотній зв'язок

1.6 Подяки

Я також вдячний thank Matt Foster, який зробив оригінальну перепис тексту.

В цьому розділі обговорюється як друкувати файли, перевіряти чергу друку, видаляти завдання з черги, форматувати файли до їх друку і робити настроювання середовища друку.

2.1 Історія Linux Printing

Система друку Linux - lp система - це порт вихідного коду написаного в Університеті Каліфорнії для BSD версії операційної системи UNIX.

2.2 Друк файлів використовуючи lpr

Найбільш простий шлях для друку в операційній системі Linux це посил файлу для друку прямо на пристрій друку. Для того щоб зробити це використовується команда cat. Як користувач root. наберіть щось подібне до цього

З метою безпеки, тільки користувач root і користувачі в тій же групі що і демон принтера можуть писати прямо на принтер. Тому такі команди як lpr. lprm. and lpq повинні використовуватися для доступу до принтера.

Тому користувачі повинні використовувати lpr для друку файлів. Команда lpr бере на себе турботи про всю початковій роботі необхідної для друку файлу, і потім передає контроль іншій програмі, lpd. демону лінійної друку. Потім демон лінійної друку каже принтеру як друкувати файл.

Коли виконується команда lpr. вона насамперед копіює заданий файл в певну директорію (spool directory), де файл залишається поки lpd друкує його. Коли lpd повідомляють, що є файл для друку, він запускає копію свого процесу (що програмісти називають forking). Ця копія процесу буде друкувати наш файл в той час як оригінальний процес буде чекати інших запитів. Це дозволяє обслуговувати багато завдань друку в один час.

Синтаксис lpr (1) дуже простий,

Якщо ім'я файлу не задано, lpr очікує введення даних зі стандартного вводаexpects (зазвичай клавіатура, або висновок іншої програми). Це дозволяє користувачам перенаправляти вивід команд в чергу друку. Ось так,

Команда lpr приймає кілька аргументів командного рядка що дозволяє користувачам контролювати його роботу. Ось деякі з часто використовуваних аргументів: -P printer визначає який принтер використовувати, -h suppresses printing of the burst page, -s створює символічне посилання замість копіювання файлу в директорію спула (корисно для великих файлів), і - # num визначає кількість копій друку . Приклад взаємодії з lpr може виглядати подібно до цього

Ця команда створює символічне посилання на файл thesis.txt в директорії спула для принтера названого dj. де він буде оброблений демоном друку lpd. Потім буде надрукована друга копія файлу thesis.txt.

Висновок повертається lpq може бути корисний для багатьох цілей.

2.4 Скасування завдання друку з використанням команди lprm

Інша корисна властивість будь-якої системи друку це можливість скасувати поточне завдання яке було перед цим поміщено в чергу. Щоб зробити це використовуйте команду lprm.

Показана вище команда скасовує всі завдання друку власником котрих є користувач виконав цю команду. Для того щоб скасувати одиночне завдання друку, треба спочатку отримати номер завдання за допомогою команди lpq і потім повідомити отриманий номер команді lprm. наприклад,

скасує завдання номер 31 (thesis.txt) на принтері за замовчуванням.

2.5 Контроль демона lpd за допомогою lpc

Програма lpc (8) використовується для контролю принтерів, які обслуговує демон lpd. Ви можете дозволяти або забороняти використання принтера або їх черг, перерозподіляти завдання всередині черги, і отримувати інформацію про стан принтерів і їх черг. Lpc найбільш часто використовується в системах, де кілька принтерів встановлено на одну машину.

Команда показана вище запускає програму lpc. За замовчуванням, вона входить в інтерактивний режим і ви можете починати вводити команди. Інші опції використовуються для запуску команди lpc в командному рядку.

Список всіх можливих команд перерахований на сторінці керівництва команди lpd. але тут перераховано кілька головних команд, які ви повинні знати. Будь-які команди позначені як option можуть бути або ім'ям принтера (lp, print, etc) або ключовим словом all. яке позначає всі принтера.

  • disable option - забороняє додавання будь-яких нових завдань друку
  • down option - забороняє всі завдання на принтері
  • enable option - дозволяє введення нових завдань в чергу друку
  • quit (or exit) - залишити lpc
  • restart option - перезавантажити lpd для даного принтера
  • status option - статус друку принтера
  • up option - дозволити все і стартувати новий демон lpd

2.6 Використання printtool в RedHat

Невелике зауваження here on RedHat's amazing printtool program.

Вона вміє робити все, що повинен робити magicfilter. RedHat вже встановив багато програм для використання фільтрів. Тут показано як встановити принтер HP LJ 4L, підключений до паралельного порту, в RedHat 4.0 (ця процедура повинна бути однаковою для всіх версій RH).
  • Увійдіть як root і запустіть printtool (якщо ви використовуєте команду su, ви повинні встановити SETENV DISPLAY: 0.0 і xhost +).
  • Натисніть кнопку "Add" ( "Додати"), і натисніть "OK" для локального принтера.
  • Заповніть поле ім'ям пристрою друку (наприклад / dev / lp1)
  • Заповніть поле вхідного фільтра - Виберіть тип принтера, дозвіл і розмір паперу (ljet4, 300x300 і letter для нашого прикладу)
  • Натисніть "OK", і перезапустіть lpd.
Подібним чином виправляючи файл / etc / printcap вручну, ви можете мати безліч визначень принтера для кожного фізичного принтера. Кожне для різних розмірів паперу, дозволів і т.п.

Цей розділ охоплює друк різних типів файлів, з якими ви зустрінетеся при роботі на Linux.

3.1 Друк графічних файлів

Якщо ви маєте лазерний принтер, це набагато легше так як багато сумісні з мовою PCL. Це дає можливість вибору. Деякі програми можуть робити висновок безпосередньо в PCL. Якщо немає, то програми подібні NetPBM можуть перетворювати PCL. Остання можливість - використовувати ghostscript (див. Наступний розділ).

Найбільш кращий вибір - установка пакетів подібних NetPBM і Ghostscript, потім встановити фільтр для обробки графічних файлів автоматично.

Зауважимо, що в наведеному вище прикладі ми перенаправляли висновок Ghostscript на пристрій lpr використовуючи опцію -sOutputFile.

3.3 Друк PDF-файлів

3.4 Друк файлів TeX

3.5 Друк файлів відформатованих програмою troff

або. якщо ви віддаєте перевагу,

3.6 Друк сторінок man

Сторінки man містять попередньо відформатовані дані troff data, так що ми повинні видалити будь-які підсвічування, підкреслення та інше. Програма 'col' робить це чудово, і ми переспрямуємо дані від програми man без використання команди more.

Ці замітки не відносяться до інших тем

4.1 Форматування до друку

Так як більшість ASCII-файлів не форматувати для друку, корисно відформатувати їх якимось чином до того як вони будуть надруковані. Це може включати приміщення заголовка і номера сторінки на кожній сторінці. Установка подвійного інтервалу, створення відступів або друк файлів в кілька колонок. Загальне рішення для того щоб зробити - використання препроцесора друку, такого як pr.

В наведеному вище прикладі, pr повинен взяти файл thesis.txt Пропустити перші три сторінки (+4), встановити довжину сторінки в 60 рядків (-l60), виводити з подвійним інтервалом (-d), і додати фразу "Ph.D. Thesis, 2nd Draft "до заголовку кожної сторінки (-h). Lpr повинен потім помістити в чергу висновок програми pr. Дивись довідкові сторінки для отримання більш детальної інформації про використання pr.

4.2 Змінна середовища PRINTER

Всі команди в системі друку Linux приймають опцію -P. Ця опція дозволяє користувачеві вказати який принтер використовувати для виведення. Якщо користувач не вказав який принтер використовувати, тоді буде використовуватися пристрій за умовчанням.

Замість вказівки який принтер використовувати коли ви друкуєте, ви можете встановити змінну середовища PRINTER зі значенням імені принтера, який ви хочете використовувати. Це робиться по різному для кожного з командних процесорів. Наприклад для bash ви можете зробити це в такий спосіб

а для csh. це робиться так

Ці команди можуть бути поміщені в ваш сценарій входу (.profile для bash. Або .cshrc для csh), або виконані з командного рядка. (Дивіться bash (1) і csh (1) для більшої інформації про змінних середовища).

В 1. Як я можу позбутися від ступеневої ефекту?

О1. Ступінчастий ефект виникає тому-що деякі принтера очікують завершення лінії. Деякі принтера вимагають ліній, які закінчуються послідовність повернення каретки / переведення рядка (стиль DOS) замість перекладу рядка, який використовується в UNIX. Найбільш легкий шлях для вирішення цієї проблеми - це подивитися чи вміє ваш принтер між цими двома стилями - або перемиканням DIP-перемикача, або посланням спеціальної послідовності при старті кожного завдання. Щоб зробити це останнім способом, вам необхідно створити фільтр (В2)

Швидке виправлення - використання фільтра в командою рядку. Приклад цього може бути таким.

В 2. Що таке фільтр?

О2. Фільтр - це програма, яка читає зі стандартного введення (stdin), виконує деякі дії над цим введенням, і пише на стандартний висновок (stdout). Фільтри використовуються для багатьох речей, включаючи обробку тексту.

У 3. Що таке magic фільтр?

В 4. Система друку Windows. Буде Linux працювати з нею?

О4. Може бути. Принтера, які сприймають тільки команди WPS не працюватимуть з Linux. Прінтрера, які приймають WPS і інші команди (такі як Canon BJC 610) працюватимуть, поки вони встановлені в щось інше ніж формат WPS. Інші принтера, такі як деякі HP DeskJet 820Cxi / Cse, не працюватимуть з Linux. Як було сказано, Linux може працювати як сервер друку (Див. Samba) для машин під Win95, так як Win95 має драйвера для друку на них

В 5. Я не можу надрукувати більше 6 сторінок чи інакше я отримую соообщенія про помилку "file too large (файл занадто великий)".

Цей розділ присвячений деяким загальним речам, які можуть призвести до її несумісності у вашій системі друку.

Якщо ваш принтер не працює:
  • Друними завдання працюють? (Проблема в додатку?)
  • lpd запущений? (Перевірити це використовуючи lpc) (контролер друку?)
  • root може послати що-небудь прямо на принтер? (Сервіс друку?)
  • Можете ви друкувати з під DOS? (Проблема в кабелі / принтері?)
Відповіді на ці питання можуть допомогти знайти рішення.

Надсилайте інші поради для цього розділу .

Цей розділ - розділ посилань на систему друку Linux. Я аостарался зберегти розділ посилань цього документа наскільки можливо повним. Якщо ви відчуваєте, що я забув важливу посилання, не соромтеся зв'язатися зі мною.

До того як ви надішлете питання в групу USENET, розгляньте наступне:
  • Принтер приймає завдання? (Використовуйте lpc (8) для перевірки).
  • Відповіді на ваше запитання описані в цьому документі або HOWTO про пресу, написаному Grant Taylor?

Якщо будь-яка з вищезгаданих правда, ви повинні подумати двічі до того як пошлете ваше запитання. І коли ви в кінці кінців пошлете питання в групу новин, постарайтеся включити необхідну інформацію. Не кажіть що небудь подібне такому: "У мене проблеми з lpr, допоможіть пожплуйста". Повідомлення такого типу швидше за все багатьма проігнорує. Також постарайтеся включити номер версії ядра Linux, як виникає помилка, і якщо є, яке повідомлення повертає система.

Інтерактивні довідкові сторінки

групи новин USENET

  • comp.os.linux. * достаток інформації про Linux
  • comp.unix. * обговорення відносяться до операційної системи UNIX