Коротка відповідь: Так, це можливо.
Трохи довше:
На мою думку спочатку pdftk
, які можуть накладати PDF-файл на інший, див http://www.pdflabs.com/docs/pdftk-man-page/ :
pdftk in.pdf background back.pdf output out.pdf
background
& lt; фон PDF-файл | - | PROMPT & gt;
Застосовує водяний знак PDF до фону одного вхідного PDF-файлу.
Pdftk використовує тільки першу сторінку з фонового PDF і застосовує її
до кожної сторінки вхідного PDF. Ця сторінка масштабується і повертається як
потрібна для розміщення сторінки введення. Можна використовувати - для передачі фонового PDF
в pdftk через stdin.
Якщо вхідний PDF не має прозорого фону (наприклад, a
PDF, створений зі сканування сторінок), то отриманий фон не буде
visible - використовуйте замість операції штамп.
або
pdftk in.pdf stamp back.pdf output out.pdf
stamp
& lt; штамп PDF ім'я файлу | - | PROMPT & gt;
Це поводиться так само, як і робота у фоновому режимі, окрім накладання
у форматі PDF на верхній частині сторінок вхідного документа PDF. Це
Найкраще працює, якщо сторінка зі штампом PDF має прозорий фон.
На цьому етапі він не повністю автоматизований, вам все одно доведеться створити файл back.pdf
вручну.
Можливе автоматичне рішення - створити файл PS з текстом шаблону в потрібній позиції, знайти & amp; замінити цей текст sed
) з ім'ям клієнта та обробкою результату ps2pdf
. [ EDIT : Див. Мій другий відповідь на крок за кроком.
Але я впевнений, що є ще складніші інструменти ... багато наукових журналів роблять те саме. Один з цих файлів PDF ідентифікує свого виробника як
Producer: StampPDF Batch 4.1.1 Solaris SPDF_1116
Тому StampPDF Здається, це професійне програмне забезпечення саме для цієї мети.
Мені сподобався цей виклик. Отже, крок за кроком:
- Створити шаблон PS. Це трохи складніше, текст повинен міститися без змін. (Експортувати PS з текстом як текст і не включати шрифти, як у CorelDRAW). Ось приклад: stamp.eps
Використовуйте sed
щоб вставити ім'я клієнта та поточну дату, експортувати в PDF за один раз. Звичайно, ім'я клієнта може надходити з DB-Query або того, що так завжди ...
sed "s/to C/to Alex/;s/on D/on $(date)/" stamp.eps | ps2pdf -dAutoRotatePages=/None - stamp.pdf