Друк документа

Дано: Програма або сервіс, з можливістю підготовки документів для друку. Комп'ютер з встановленою операційною системою Ubuntu (або Debian) і графічної середовищем. Будь-яке обладнання для друку.

Завдання: Зробити можливим друк готового документа .pdf з автоматичними змінами перед самим друком.

Якщо коротко, пропонована логіка роботи така: ми посилаємо документ на друк «в файл» (віртуальний принтер), далі при його збереженні спрацьовує скрипт, який змінює вміст документа і відправляє вже на фізичний пристрій друку.

1. Почнемо з установки програми, яка вміє "стежити" за подіями в файлової системі і реагувати потрібним нам чином.

] $ Sudo aptitude install incron

Після установки, налаштуємо програму incron

/etc/incron.conf - Головний файл конфігурації incron

/etc/incron.d/ - Директорія для конфігов завдань

Додамо, нове завдання для нашої задачі. Синтаксис завдань:

options

наприклад, для нашого скрипта, при створенні (збереженні) нового .pdf файлу

/ Var / www / html IN_CREATE /user/home/scripts/print_pdf.sh

Повний список можливостей і умов спрацювання incron, в man incron

2. Далі встановимо програму для редагування .pdf - pdftk. Pdftk вміє працювати з .pdf файлами з командного рядка, це зручно для використання в скриптах. Вона непроста і функціонал дуже об'ємний, але нам потрібно від неї зовсім небагато, а саме можливість "склеювання" двох .pdf документів (опція - background).

] $ Sudo aptitude install pdftk

] $ Pdftk in.pdf background back.pdf output out.pdf

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

Повний список можливостей обробки документів в pdftk, в man pdftk

3. Після того як ми змогли змінити файл за допомогою pdftk, ми повинні організувати його друк. Друкувати будемо через стандартну консольную програму lp.

Приклад ізпользованія lp:

/ Home / user / print IN_CREATE /home/user/print/print.sh

Тепер коли ми посилаємо на друк «в файл» (віртуальний принтер, або просто зберігаємо) в директорію print, спрацьовує скрипт print.sh.

/ Usr / bin / lp -P 1 "$" / *. Pdf

/ Usr / bin / pdftk "$" / *. Pdf background "$" / back output "$" / out

/ Usr / bin / lp -P 1 "$" / out

Підсумок: Якщо нам потрібно роздрукувати документ pdf з потрібними доповненнями в змісті, ми просто вибираємо друк (або збереження) «в файл» і вибираємо директорію print, все інше зробить за нас incron, pdftk і lp. Ми отримали можливість друкувати підготовлений документ з автоматично редагуванням "на льоту" не вдаючись до додаткових, довгим і складним маніпуляціям з програмами для редагування pdf.



Схожі статті