Додавання назви файла "Ліцензовано" до PDF-файлу під час завантаження


3

Я шукаю, щоб надати деякі PDF-файли для завантаження. Це майже неможливо зупинити їх перевидання після завантаження, але я хотів би додати ім'я покупця в нижній частині кожної сторінки у форматі: Licensed To: xxxxxxx, щоб у випадку передачі файлів навколо людей що вони є незаконною копією. Я погоджуюся, що навіть це може бути замасковано, а потім фотокопійовано, але це робить роботу над документом на 400 сторінок більшим

Чи можливо це, будь ласка?


1
Зверніть увагу, що так само, як ви редагуєте PDF-файл, додаючи "ліцензію на", хтось може редагувати pdf, щоб видалити це повідомлення, не скопіюючи нічого.
Marcks Thomas

1
@mpy: Є, але шифрування також перешкоджатиме вашим клієнтам читати файл PDF. Це здається контрпродуктивним; Ви також можете не надавати їх у першу чергу. Якщо ви також надаєте ключі дешифрування, ваша схема захисту була просто порушена.
Marcks Thomas

1
@MarcksThomas: Ви можете визначити різних користувачів (можете читати, друкувати, коментувати або що завгодно дозволяє власника) і власника (може маніпулювати документами) паролів.
mpy

1
@mpy: Захист паролем не завадить людям друкувати або редагувати документ, за умови, що вони можуть його прочитати. Це поза вашим контролем. Аналогічним чином, ніяка схема захисту паролем, яким би розумним, не могла перешкодити вам писати цей абзац на аркуші паперу, але дозволити вам прочитати його, тому що ви керуєте олівцем, папером і тепер повідомленням.
Marcks Thomas

1
@MarcksThomas: Я не згоден, але, ймовірно, ми говоримо в перехресних цілях, так що це мій останній коментар тут. Погляньте на File- & gt; Властивості- & gt; Безпека, є тонко закінчений список, що читачеві дозволено робити чи ні. Також у цьому розділі Вікіпедії пояснюється, що я маю на увазі: en.wikipedia.org/wiki/PDF#Security_and_signatures Я згоден, ви можете робити скріншоти або взагалі, але, як зазначив ОП, це біль у шиї для 100 + сторінок. (Те, що ця функція не є безпечною, оскільки деякі інструменти для розтріскування знаходяться поза межами іншої теми, але принаймні це викликає небагато читача.)
mpy

Відповіді:


4

Коротка відповідь: Так, це можливо.

Трохи довше:

На мою думку спочатку 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

enter image description here

  • Використовуйте sed щоб вставити ім'я клієнта та поточну дату, експортувати в PDF за один раз. Звичайно, ім'я клієнта може надходити з DB-Query або того, що так завжди ...

    sed "s/to C/to Alex/;s/on D/on $(date)/" stamp.eps | ps2pdf -dAutoRotatePages=/None - stamp.pdf

enter image description here

  • Використовуйте pdftk накласти на оригінальний файл PDF

    pdftk original.pdf stamp stamp.pdf output webversion.pdf

enter image description here

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.