Донецкий техникум промышленной автоматики

9.6. принтер | Linux для користувача | Книги та керівництва | Бібліотека Лінуксцентра | Linuxcenter.Ru - експерт по Linux і вільного програмного забезпечення. Впровадження Linux і вільного програмного забезпечення, дистрибутиви Linux, книги, статті про Linux, навчання Linux і вільним ПЗ. Mandriva, Ubuntu, SUSE, Fedora, Red Hat, Debian, KNOPPIX, Gentoo, Slackware, FreeBSD, CentOS, Xandros, RedHat, Linux-XP, OpenBSD, Scientific, ASPLinux, ALTLinux, MOPSLinux.

  1. Глава 9. Підключення і настройка апаратних пристроїв 9.6. принтер
  2. 9.6.2. Файл / etc / printcap
  3. 9.6.3. Налаштування lpd за допомогою програми printconf-gui
  4. 9.6.4. фільтри
  5. 9.6.5. PostScript и Ghostscript
  6. 9.6.6. Шрифти для Ghostscript
  7. 9.6.7. Друк на віддалений принтер

Глава 9. Підключення і настройка апаратних пристроїв

9.6. принтер

9.6.1. Традиційні засоби друку UNIX

Історично для друку в UNIX-системах існували дві системи друку: LPD (Line Printer Daemon) [RFC1179], розроблена для Berkeley UNIX (або BSD-система), і AT & T Line Printer system. Ці системи друку були створені в 70-х роках для друку текстів на построчно-друкуючих (лінійних) принтерах. Беручи до уваги, що апаратні засоби друку (простіше кажучи, принтери) з тих пір істотно змінилися, можна було б припустити, що істотно перероблені і програмні засоби для управління печаткою. Однак, цього не сталося. Хоча і були створені різні поліпшені системи друку [LPRng, Palladin, PLP], однак жодна з цих нових розробок не зраджувала фундаментальні можливості цих систем. Втім, як показало час і практика, можливості цих систем цілком достатні і при невеликих доробках задовольняють і сучасні потреби.

Як і у всіх UNIX-системах, в Linux файл, призначений для друку, спочатку пересилається в тимчасову область (простіше кажучи, тимчасовий каталог), яка називається областю спулінга. Справа в тому, що принтери є відносно повільними пристроями, і система піклується про те, щоб не затримувати роботу на час роздруківки файлу. Фоновий процес - демон друку - постійно сканує область спулінга в очікуванні файлів, призначених для друку. Для кожного принтера, підключеного до системи, заводиться своя область спулінга. Таким чином, область спулінга є черга завдань на друк, що чекають того моменту, коли звільниться відповідний принтер і демон друку відправить дане завдання на друк (у фоновому режимі).

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

  • lpd - демон системи друку. Зазвичай запускається на етапі завантаження системи з файлу rc, але може бути запущений і користувачем.

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

  • lpq - програма, що дозволяє переглядати чергу завдань, які очікують друку на вказаному принтері.

  • lpc - команда контролю системи lpd. За допомогою lpc можна відключати принтери, зупиняти або змінювати порядок черги друку і т.п. Деякі з функцій цієї команди доступні користувачам, але в основному це засіб для адміністратора.

  • lprm - ця команда дозволяє видалити одне або кілька завдань з черги друку. При цьому стираються відповідні файли даних і з системи друку будуть втрачені всі посилання на них.

Взаємодія lpr та інших програм цього набору з демоном lpd здійснюється з використанням мережевих засобів, так що вони можуть запускатися і на інших комп'ютерах. Розглянемо коротко, як здійснюється друк файлу в системі LPD.

Коли викликається програма lpr, вона насамперед вибирає принтер, на який буде потрібно друкувати. Цей вибір визначається або параметром командного рядка P printer, або значенням змінної оточення PRINTER, або ж використовується загальносистемний принтер, заданий за замовчуванням (це принтер з ім'ям lp). Як тільки lpr дізнається, на який принтер відправляти поточне завдання, вона шукає опис цього принтера в базі даних про наявні принтерах, яка зберігається в файлі / etc / printcap. З цієї бази lpr отримує ім'я каталогу (області спулінга), в який слід поміщати завдання для знайденого принтера. Зазвичай цей буферний каталог має ім'я / var / spool / lpd / printer. Такий каталог (область спулінга) повинен існувати, якщо ви хочете друкувати на принтері з ім'ям printer.

Для кожного завдання програма lpr поміщає в буферний каталог два файли: cfxxx і dfxxx, де xxx - номер поточного завдання. Файл cfxxx містить довідкову інформацію та інформацію про обробку завдання. Джерелом цих відомостей є командний рядок запуску програми, змінні середовища процесу, який запустив цю програму, і глобальна конфігурація системи. Файл dfxxx містить дані, що підлягають друку.

Після постановки завдання в чергу lpr повідомляє демона lpd про появу завдання на друк. Взаємодія lpr з lpd відбувається через іменований сокет / dev / printer. Демон lpd теж звертається до файлу / etc / printcap, щоб дізнатися, який принтер повинен використовуватися для друку, і є він локальним або віддаленим. Якщо в / etc / printcap зазначено, що принтер підключений локально, lpd перевіряє наявність демона друку, який займається обробкою відповідну чергу. Справа в тому, що для обробки кожної черги lpd створює окрему копію самого себе. Якщо такої копії ще немає, вона створюється і їй передається обробка черги. Якщо відповідний принтер підключений до іншої машини, lpd встановлює з'єднання з демоном lpd віддаленої машини і пересилає туди файл даних і керуючий файл.

Обслуговування завдань друку здійснюється за правилом "першим прийшов - першим обслужений" (FIFO). Системний адміністратор може при бажанні змінити порядок друку за допомогою програми lpc.

Починаючи з ядра 2.1.33 пристрій lp є клієнтом нового пристрою parport. Введення parport вирішує деякі проблеми, пов'язані з lp - тепер можна розділяти паралельні порти з іншими драйверами, динамічно пов'язувати порти з пристроями, не встановлюючи жорсткої відповідності між адресами I / O і номером порту і т. Д. Детальніше про це ви можете прочитати в статті .

9.6.2. Файл / etc / printcap

Файл / etc / printcap - це головна база даних системи друку LPD. Принтер буде отримувати завдання на друк тільки в тому випадку, якщо він (принтер) описаний в цьому файлі. Тому для отримання можливості використовувати принтер ви повинні додати чергу друку до lpd, т. Е. Створити новий буферний підкаталог в каталозі / var / spool / lpd і додати відповідний запис в файл / etc / printcap.

Запис в файлі / etc / printcap виглядає приблизно так:

# ЛОКАЛЬНИЙ djet500

lp | dj | deskjet: \

: Sd = / var / spool / lpd / dj: \

: Mx # 0: \

: Lp = / dev / lp0: \

: Sh:

Кожен елемент файлу / etc / printcap починається з рядка, що задає імена принтера (їх може бути декілька), що розділяються вертикальною лінією. Потім слід ряд параметрів конфігурації, розділених двокрапкою (зазвичай кожен параметр полягає в двокрапки з обох сторін). Кожен параметр має вигляд xx = рядок або xx # число, де xx - Двосимвольні ім'я параметра, а рядок і число - привласнюються йому значення. Якщо ніякого значення не присвоюється, змінна є булевої, і її присутність означає "істина". Допускаються порожні оператори: два поруч стоять двокрапки. Рядки, що починаються символом #, містять коментар. Зворотна коса риска в кінці рядка означає, що в наступному рядку йде продовження поточної рядки.

Наведений вище приклад записи визначає принтер званий lp, dj, або deskjet, його спула розміщується в директорії / var / spool / lpd / dj, максимальний розмір завдання не має обмеження, друк проводиться на пристрій / dev / lp0, і сторінка з заголовком (з ім'ям користувача, який відправив завдання на друк, та іншою інформацією) не додають в початок завдання друку.

Детальніше про те, як створювати такі записи, можна прочитати на довідкової сторінці для printcap. Але про деякі найважливіших (і обов'язкових) параметрах варто розповісти тут, хоча б просто для прикладу.

  • sd = буферний_каталог. У кожного принтера повинен бути свій буферний каталог. Все буферні каталоги повинні знаходитися в одному каталозі (зазвичай це / var / spool / lpd) і мати імена, що збігаються з повними іменами обслуговуваних ними принтерів. Буферний каталог потрібен навіть в тому випадку, якщо описуваний принтер підключений до іншої машини: завдання знаходяться на локальній машині до тих пір, поки вони не будуть передані на друк.

  • lp = ім'я_пристрою. У такому вигляді цей параметр повинен задаватися тільки для локального принтера. Якщо принтер знаходиться на іншій машині, замість імені пристрою вказується ім'я унікального файлу, який існує і розташований на локальному диску. Щоб принтер міг повертати через вказаний файл інформацію про свій стан, необхідно задати в елементі булеву змінну rw, щоб пристрій було відкрито і для читання, і для запису.

  • rm і rp. У багатьох випадках в якості друкувального пристрою використовується мережевий принтер, підключений до якогось іншого комп'ютера в локальній (або навіть глобальної) мережі. В такому випадку на вашій машині в файлі / etc / printcap повинні бути присутніми дві змінні rm і rp. В змінної rm визначається машина, на яку повинні надсилатися завдання, а змінна rp задає ім'я принтера на цій машині.

  • mx. Мінлива mx використовується для завдання максимального розміру (в байтах) друкованого файлу. Цей параметр може використовуватися системними адміністраторами для того, щоб запобігти негативні наслідки поширеної помилки початківців користувачів, що складається в посилці на друк довічних файлів (які зазвичай мають більшу довжину). Оскільки такі файли можуть містити довільні символи, в тому числі символи, які служать в якості керуючих команд для принтера, друк довічних файлів може призводити, наприклад, до невиправданого витрачання паперу та інших неприємних наслідків. На локальному принтері персонального комп'ютера цей параметр можна і не ставити. Я привів його для того, щоб відзначити, що для цього параметра, як і для всіх інших числових параметрів, значення має відділятися від імені параметра знаком #, наприклад, mx # 0. Якщо написати mx = 0, то такий запис не викличе повідомлень про помилку, але вона не змінює значення змінної mx.

Ще один дуже істотна група параметрів - це параметри of, if і nf. Але про них треба поговорити окремо, що ми і зробимо трохи нижче в підрозділі "Фільтри". Однак спочатку розглянемо програму, яка дозволяє здійснити настройку принтера і створити файл / etc / printcap /.

9.6.3. Налаштування lpd за допомогою програми printconf-gui

Налаштування системи LPD полягає в тому, що забезпечується можливість створювати черги файлів і відправляти завдання з цих черг на принтер. Таку настройку можна зробити вручну, і я сподіваюся, що наведене вище дозволяє це зробити. Однак в більшості дистрибутивів є спеціальні утиліти, що полегшують конфігурацію підсистеми друку. У дистрибутиві Red Hat версії 6 така утиліта називалася printtoool, а у версії 7.1 замість printtool включена утиліта printconf-gui, яку можна викликати з меню оболонки KDE. Ця утиліта підтримує ведення конфігураційного файлу / etc / printcap, створення областей спулінга і вибір фільтрів. Якщо у файлі / etc / printcap немає жодного запису про принтерах, то головне вікно програми printconf-gui виглядає так, як показано на рис. 9.2.

Мал. 9.2. Основне вікно printconf-gui

Як бачите, в меню програми є команда Нова, після вибору якої ми бачимо наступне вікно (рис. 9.3), в якому можна ввести ім'я черги (яке буде і ім'ям принтера, а тому має бути унікальним), а також його синоніми (aliases) .

3), в якому можна ввести ім'я черги (яке буде і ім'ям принтера, а тому має бути унікальним), а також його синоніми (aliases)

Мал. 9.3. Завдання імені черги

Завдання імені черги

Мал. 9.4. Вибір типу принтера і завдання пристрою

Клацнувши по команді меню Тип черзі в лівому полі вікна, ви отримаєте можливість вибрати тип принтера і задати ім'я спеціального файлу пристрою. Тип черзі вибирається зі списку. Можна вибрати один з наступних типів:

  • Локальний принтер - принтер, безпосередньо приєднаний до вашого комп'ютера через паралельний або USB-порт;
  • Unix Printer (lpd Spool) - принтер, приєднаний до іншого UNIX-комп'ютера, доступ до якого здійснюється через мережу TCP / IP (наприклад, принтер, приєднаний до іншого Linux-комп'ютера);
  • Windows Printer (SMB Share) - принтер, приєднаний до іншої системи, що працює під ОС Windows або має встановлений сервер Samba (SMB);
  • Novell Printer (NCP Queue) - принтер, приєднаний до іншої системи, що використовує технологію Novell's NetWare і протокол NCP;
  • JetDirect Printer - принтер, безпосередньо підключений до мережі, а не до якогось комп'ютера.

Ми розглянемо тільки випадок підключення локального принтера, а інші виходи ви можете вивчити за допомогою наявної в програмі підказки (екранна кнопка Довідка).

Після вибору типу принтера і вказівки імені пристрою клацніть по рядку Printer Driver в лівій колонці, і ви побачите список відомих програмі драйверів, упорядкований по фірмам-виробникам (рис. 9.5):

5):

Мал. 9.5. вибір драйвера

Якщо клацнути по трикутному значку зліва від імені фірми, розкриється список драйверів для принтерів даного виробника. На рис. 9.6 видно частину списку принтерів, які здійснює фірма Hewlett Packard.


Мал. 9.6. Принтери фірми Hewlett Packard

Клацання по кнопці з написом Printer Notes ... призводить до появи вікна з короткою інформацією про обраний принтері (рис. 9.7).

7)

Мал. 9.7. Нотатки про принтері

Ну, і останнє вікно в цьому ряду (рис. 9.8) дозволяє задати деякі параметри для вибраного принтера: режим друку (нормальний, економічний, висока якість), дозвіл друку, розмір паперу, і т. П.

Завершивши введення, натисніть кнопку OK. Після цього введені вами дані будуть збережені в базі даних в файлі / etc / printcap.

Команда Правка основного меню програми дозволяє таким же способом відредагувати установки для принтера, який вже був описаний раніше.

Після того, як ви додали в базу даних новий принтер або відредагували установки раніше заведеного, обов'язково необхідно перезапустити демон lpd. Для цього можна скористатися кнопкою Застосувати в основному вікні програми.

Для цього можна скористатися кнопкою Застосувати в основному вікні програми

Мал. 9.8. Завдання параметрів друку

Тепер можна спробувати роздрукувати пробну сторінку, скориставшись командою Тест головного меню програми. Вам буде запропоновано 3 варіанти тестової сторінки: Print PostScript Test Page, Print A4 PostScript Test Page, або Print ASCII Test Page. Швидше за все, тестова сторінка у вас роздрукується без проблем. Але якщо ви спробуєте надрукувати сторінку тексту з будь-якої програми, тим більше, якщо використовуються різні шрифти, та ще з кирилицею, то результат, на жаль, може виявитися не таким радує. Справа в тому, що ми поки налаштували тільки "нижній" шар підсистеми друку, що забезпечує передачу потоку байт від ядра ОС в паралельний порт або на мережевий принтер. Але проблема управління самим принтером (а не паралельним портом) поки не вирішена. В системі LPD ця проблема вирішується за допомогою фільтрів.

9.6.4. фільтри

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

Фільтр - це, як правило, просто сценарій shell, який викликає ряд конвертують програм. Фільтр можна вказати в командному рядку виклику програми lpr. Якщо в командному рядку фільтр не вказано, то використовуються фільтри, задані параметрами if, of і nf відповідного запису в файлі / etc / printcap. Якщо в цьому записі присутній змінна if, а параметра of немає, то пристрій (принтер) буде відкриватися один раз для кожного завдання, а фільтр буде посилати одне завдання на принтер і завершувати роботу. Якщо є of, а if немає, то lpd одноразово відкриє пристрій і викличе програму-фільтр для посилки відразу всіх завдань, що стоять в черзі. Це корисно для друку на тих пристроях, з'єднання з якими вимагає великого часу. Одночасного використання параметрів of і if слід уникати, а з двох попередніх варіантів рекомендується вибирати використання параметра if. Відповідний елемент в запису файлу / etc / printcapможет мати приблизно такий вигляд:

: If = / var / spool / lpd / dj / filter: \

Якщо ніякого фільтра взагалі не задано, то висновок на друк може виглядати дуже негарно. Наприклад, при друку звичайного текстового файлу висновок може виглядати приблизно так:

This is line one.

This is line two.

This is line three.

Друк файлу в форматі PostScript видасть лістинг команд PostScript, надрукованих з цим "сходовим ефектом", а не корисний висновок. У керівництві "Printing HOWTO" наводиться такий приклад простого фільтра, призначеного тільки для того, щоб усунути "сходовий ефект":

#! Perl

# Попередня рядок повинен містити повний шлях до perl

# Скрипт повинен бути виконуваним: chmod 755 filter

while (<STDIN>) {chop $ _; print "$ _ \ r \ n";};

# Ви можете також додати в кінець прогін сторінки: print "\ f";

Цей текст треба зберегти як файл / var / spool / lpd / dj / filter, після чого будуть нормально друкуватися звичайні текстові файли.

Але друк простих ASCII-файлів - це тільки окремий випадок друку. У більшості випадків в даний час друкуються файли в інших форматах, наприклад, PostScript. Проблема виведення таких файлів на друк теж вирішується шляхом використання фільтра, тільки набагато більш складного. Таких фільтрів розроблено вже досить багато, але найважливіший з них - програма ghostscript.

9.6.5. PostScript и Ghostscript

На жаль Користувачів, фірми-виробника принтерів довгий час не могли досягті Згоди в пітанні про вибір керуючих сігналів для Вироблення ними прістроїв. В результате для шкірного принтера досі необхідній Особливий драйвер. Однак з часів так званої "революції настільних видавничих систем" 80-х років в якості в якості стандартного мови управління принтером поступово утвердився мову PostScript, розроблений фірмою Adobe Systems, Inc. І не тільки в UNIX-середовищі, а у видавничій справі взагалі.

Ця мова являє собою спеціальну мову програмування для опису виведеної на друк сторінки з текстом або графікою. Adobe Systems, Inc., спочатку розробила стандарт на PostScript, відкрила його для вільного розповсюдження. Відзначимо ще, що формат PDF (Формат переносного документа Adobe) - це насправді трохи більше ніж кілька перетворений PostScript в стислому файлі.

Ідея, закладена в основу розробки PostScript, проста: все, що можна надрукувати, описується за допомогою спеціальної мови програмування, принтер же повинен цю мову розуміти. І принтери, "розуміючі" мова PostScript, т. Е. Мають вбудований PostScript-інтерпретатор (так звані PostScript-принтери), швидко з'явилися. На жаль, вони виявилися стабільно дорожче звичайних принтерів. Тоді були розроблені програмні PostScript-інтерпретатори, які беруть дані в форматі PostScript і перетворять в специфічний для даного принтера керуючий код. Це дає вам віртуальний PostScript-принтер і дозволяє використовувати принтери, які мають апаратного інтерпретатора.

Ймовірно, однією з кращих програмних інтерпретаторів мови PostScript є Ghostscript (http://www.cs.wisc.edu/~ghost/), або просто gs. Він існує в двох варіантах. Комерційна версія Ghostscript, звана Aladdin Ghostscript або AFPL Ghostscript, вільна для персонального використання, але не може поширюватися з комерційними дистрибутивами Linux. У складі останніх доступний GNU Ghostscript, що представляє собою той же gs, тільки версією нижче і з іншим ліцензійною угодою. На сьогоднішній день можна завантажити версію AFPL Ghostscript 7.0, тоді як версія GNU Ghostscript - 5.5. У складі Ghostscript є значний набір фільтрів - апаратно орієнтованих модулів, що дозволяють отримувати зображення на різних пристрої. Пристрої, а не принтерах, оскільки Ghostscript може забезпечити виведення на будь-який графічний пристрій. Саме gs присутній в якості фільтра в / etc / printcap - файлі конфігурації lpd. Опції запуску gs як фільтр визначаються типом принтера.

9.6.6. Шрифти для Ghostscript

Для пакета Ghostscript розроблені PostScript-шрифти, які забезпечують високе якість друку на НЕ-PostScript принтерах. Такі шрифти напевно знайдуться на вашому дистрибутивному диску у вигляді пакету ghostscript-fonts. Однак саме зі шрифтами і пов'язана більшість проблем, які виникають під час налаштування принтера.

Справа в тому, що програмою Ghostscript треба точно знати, де розташовані шрифти для неї. Але оскільки стандарт FHS (Filesystem Hierarhy Standard), про підтримку якого заявили всі укладачі дистрибутивів, поки що не утвердився остаточно, структура каталогів в Linux змінюється від версії до версії навіть в межах одного дистрибутива. Тому файли шрифтів можуть виявитися де завгодно. Дуже часто - не там, де їх шукатиме Ghostscript. В результаті при спробі роздрукувати будь-який документ ви можете отримати далеко не те, що очікували: від невідповідності зовнішнього вигляду роздрукованого документа вашому задуму до спотворення або відсутність фрагментів тексту, що вимагає, відповідно до PostScript-файлом, того самого шрифту, який не зміг завантажити Ghostscript. Становище ускладнюється тим, що, по крайней мере, частина документів включає кирилицю, а деякі дистрибутиви немає в каталогах, сканованих за замовчуванням Ghostscript, шрифтів із кирилицею.

Подолати ці труднощі в принципі не складно. Але, перш ніж розказати, як це зробити, треба сказати, що в Linux є програма ghostview (gv), призначення якої - прийняти висновок ghostscript і вивести зображення на екран. Це дає інструмент, що забезпечує можливість попереднього перегляду ( "print preview") для будь-якого додатку, що генерує PostScript-файли. За допомогою gv ви зможете визначити, чи пов'язані ваші проблеми з вибором типу принтера або c роботою gs в цілому. Бачите на екрані, але не отримуєте на друку - спробуйте інший фільтр (виберіть інший принтер), не бачите нічого "путнього" - продовжуємо розбиратися з налаштуванням ghostscript.

Тепер потрібно відзначити, що програму Ghostscript можна запускати не тільки як фільтр для LPD, але і з командного рядка (для цього треба дати команду gs). Цією можливістю і скористаємося для цілей налагодження.

Спочатку запустіть команду gs з опцією -help. В результаті ви отримаєте, по-перше, короткий інформативний список опцій і доступних драйверів (зауважимо, що цей список є списком тільки вкомпільовані, а не всіх доступних драйверів), і, по-друге, перелік шляхів пошуку. Цей список можна, звичайно, змінити, але для цього треба перекомпілювати програму. Якщо ж ви не хочете займатися компіляцією, треба помістити файли шрифтів саме в ці каталоги.

Але цього замало того, щоб Ghostscript могла використовувати шрифти. Справа в тому, що ця програма звертається до шрифтів по іменах, записуваним в тій нотації, в якій допускається їх використання в PostScript-файлах. Відповідність між такими назвами шрифтів і іменами реальних файлів шрифтів задається файлом Fontmap (або Fontmap.GS), який розташовується в каталозі /usr/share/ghostscript/N.NN, де N.NN - номер версії програми ghostscript (на даний момент - 5.50 ). Кожен рядок (крім рядків коментарів) цього файлу складається з трьох елементів.

  • Першим стоїть ім'я, під яким шрифт буде відомий програмі Ghostscript, причому перед цим ім'ям повинен стояти слеш (/), або ім'я має бути укладена в круглі дужки;

  • Далі слід ім'я файлу шрифту або синонім (aliace) імені шрифту. Якщо вказується ім'я файлу шрифту, то воно має бути укладена в круглі дужки і записано з зазначенням розширення (зазвичай це gsf, але допускаються також pfa і pfb), а також має відповідати правилам формування імен файлів в MS-DOS, т. Е. Складатися з букв (в нижньому регістрі), цифр і знаків підкреслення. Якщо ж це синонім, то вказується ім'я одного з уже відомих програмі Ghostscript шрифтів, причому перед цим ім'ям повинен стояти слеш (/).

  • Завершує рядок крапка з комою, перед якою має стояти принаймні, один пробіл або символ табуляції.

Шляхи до файлів шрифтів у файлі Fontmap не вказані. Якщо ви не використовували пропоновані керівництвом засоби примусової "орієнтації" ghostscript (параметри командного рядка і змінні оточення), то gs буде використовувати "шляху за замовчуванням", задані при компіляції. У цих каталогах повинні бути файли fonts.dir, які містять опис фонтів в даному каталозі (докладніше про файлах fonts.dir ви можете прочитати в розд. 11.4).

Таким чином, в залежності від потреб ви можете або внести в Fontmap необхідний шрифт (попередньо помістивши відповідний файл в один з доступних програмі каталогів і указавши ім'я файлу в додається рядку), також призначити в якості синоніма потрібного шрифту ім'я одного з уже відомих програмі шрифтів. Наприклад, зробити шрифт / Courier синонімом спочатку відомого програмі шрифту / NimbusMonL-Regu (якому, в свою чергу відповідає файл (n022024l.pfb)). Якщо завдання - в основному друкувати файли, PostScript-вміст яких поза вашим контролем, - підберіть синоніми для потрібних шрифтів з числа відомих програмі. Якщо PostScript-файл генерується під вашим контролем - просто вибирайте один з наявних в системі шрифтів. Зрозуміло, не забувши при цьому описати його в Fontmap.

Після цього виконайте команду

[User] $ gv filename.ps

Якщо ви при цьому побачите на екрані весь текст з файлу filename.ps, ви можете спробувати віддрукувати файл і на принтері. Якщо ж замість тексту побачите порожній лист чи шрифт вам не подобається, продовжуйте експериментувати з налаштуванням шрифтів. Але попередньо прочитайте статтю, яка послужила основою для моєї розповіді про шрифтах для Ghostscript, і в якій Ви знайдете кілька додаткових підказок. Крім того, в Інтернеті є два дуже корисних ресурсу і, куди буде не шкідливо заглянути.

9.6.7. Друк на віддалений принтер

Якщо ваш комп'ютер підключено до мережі, то не обов'язково мати принтер, безпосередньо до нього підключений, можна користуватися принтером, підключеним до якогось іншого комп'ютера. Налаштування такого принтера на вашому комп'ютері вимагає тільки вказівки того, до якого комп'ютера в мережі підключений принтер (це робиться за допомогою завдання змінних rm і rp в файлі / etc / printcap, про що було сказано вище). Якщо використовувати утиліту printconf-gui, то досить при виборі типу черги (див. Рис. 9.4) вибрати варіант "UNIX printer (lpd Queue)", якщо цей інший Linux-комп'ютер. Якщо принтер підключений до Windows-комп'ютера або відданий в мережу через Samba-сервер, то, природно, треба вибирати тип черги "Принтер Windows (ресурс Samba)"

На віддаленому комп'ютері повинен бути дозволений доступ до цього принтера. У Linux це робиться за допомогою файлу /etc/lpd.perms (див. Відповідну сторінку керівництва man).

[Опубліковано 04/11/2005]

В. Костромін (kos at rus-linux dot net) - 9.6. принтер Версія для друку