3

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

Это возможно, пожалуйста?

1 ответ1

4

Краткий ответ: да, это возможно.

Немного больше:

Сначала мне приходит в голову pdftk , который может наложить PDF-файл на другой, см. Http://www.pdflabs.com/docs/pdftk-man-page/:

pdftk in.pdf background back.pdf output out.pdf

background <фон PDF имя файла | - | ПОДСКАЗКА>

Применяет водяной знак PDF к фону одного входного PDF.

Pdftk использует только первую страницу из фонового PDF и применяет ее к каждой странице входного PDF. Эта страница масштабируется и поворачивается по мере необходимости, чтобы соответствовать входной странице. Вы можете использовать - для передачи фонового PDF в pdftk через stdin.

Если входной PDF-файл не имеет прозрачного фона (например, PDF-файла, созданного в результате сканирования страниц), то результирующий фон не будет виден - используйте вместо этого операцию штампа.

или же

pdftk in.pdf stamp back.pdf output out.pdf

stamp <штемпель PDF имя файла | - | ПОДСКАЗКА>

Это ведет себя так же, как фоновая операция, за исключением того, что оно перекрывает страницу штампа PDF поверх страниц входного документа PDF. Это лучше всего работает, если страница штампа PDF имеет прозрачный фон.

На этом этапе он не полностью автоматизирован, вам все равно придется создавать файл back.pdf вручную. Возможное автоматическое решение - создать файл PS с текстом шаблона в нужной позиции, выполнить поиск и заменить этот текст (в un * x на sed) именем клиента и обработать результат с помощью ps2pdf . [ РЕДАКТИРОВАТЬ: Смотрите мой второй ответ для пошагового руководства.]

Но я уверен, что есть более сложные инструменты ... многие научные журналы делают то же самое. Один из этих файлов 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

  • Используйте pdftk чтобы запечатать это в ваш оригинальный файл PDF

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .