Генерируйте или обновите PDF для включения зашифрованного, скрытого водяного знака?

Фон

Используя ЛАТЕКС для записи книги. Когда пользователь купит книгу, PDF будет сгенерирован автоматически.

Проблема

PDF должен иметь водяной знак, который включает имя и контактную информацию человека.

Вопрос

Какое программное обеспечение соответствует следующим критериям:

  • Применяет зашифрованные, невидимые водяные знаки к PDF
  • Открытый исходный код
  • Независимый от платформы (Linux, Windows)
  • Быстро (отмечает 200 страниц PDF за менее чем 1 секунду),
  • Пакетная обработка (управляемая исключительно командная строка)
  • Стойкое нападение сговора
  • Нехрупкий (например, PDF-> EPS-> PDF все еще содержит водяной знак),
  • Хорошо зарегистрированный (показывает использования в качестве примера),

Идеи и Ресурсы

Некоторые мысли и результаты:

  • Водяные знаки обработки естественного языка (NLP).
  • Примените стеганографию на случайным образом выбранное изображение.
  • http://openstego.sourceforge.net/cmdline.html

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

Спасибо!

10
задан 26.12.2010, 18:59

2 ответа

Я сделал что-то подобное несколько лет назад. Это не соответствовало всем Вашим "трудным" критериям. Это работало как это:

  • Я поместил едва обнаруживаемый, 2x2, точка измерила "активируемую по щелчку" область на некотором случайном месте на одной из границ случайной страницы PDF. Не вероятно, что это добирается, обнаружил случайно (среди загрузки других очень очевидно активируемых по щелчку горячих точек, которая была в PDF так или иначе...).

  • Если Вы нажимаете на ссылку, она взяла бы Вас к веб-странице http://my.own.site/project/87245e386722ad77b4212dbec4f0e912, с некоторыми искусственными пунктами маркированного списка "опечаток". (Я упоминал это 87245e386722ad77b4212dbec4f0e912 был хеш MD5 имени человека + контактные данные, которые я сохранил сохраненным в Таблице базы данных?:-)

Очевидно, это не защищает от printing+scanning+ocr-ing или от цикла "пережарки" PDF. И это также полагается на определенную степень "безопасности с помощью мрака".

Вот то, как Вы используете Ghostscript для добавления такой активируемой по щелчку горячей точки к левому нижнему углу страницы 1 random-in.pdf:

gs \
 -o random-out.pdf \
 -sDEVICE=pdfwrite \
 -dPDFSETTINGS=/prepress \
 -c "[ /Rect [1 1 3 3]" \
 -c "  /Color [1 1 1]" \
 -c "  /Page 1" \
 -c "  /Action <</Subtype /URI" \
 -c "  /URI (http://my.own.site/87245e386722ad77b4212dbec4f0e912)>>" \
 -c "  /Subtype /Link" \
 -c "  /ANN pdfmark" \
 -f random-in.pdf

Сделать активируемую по щелчку область большим и видимым изменением выше параметров командной строки как это:

 [....]
 -c "[/Rect [1 1 50 50]" \
 -c "  /Color [1 0 0]" \
 [....]

Еще более более простой должен был бы генерировать и сохранить хеш MD5 PDF в Вашей базе данных. Это будет uniq для каждого PDF, который Вы создаете из-за документов UUID и CreationDate и ModDate в его метаданных. Конечно, это также только позволяет отслеживать исходный PDFs в их цифровой форме...

6
ответ дан 07.12.2019, 12:59

Очень трудно один и я не уверен, что это ответит на все Ваши вопросы вообще.

Я не уверен во всех в одном решении, которое может сделать это, или рандомизировать.

Однако, если бы для меня определили задачу с этим, то я думал бы, что самый легкий путь состоит в том, чтобы сохранить документ в промежуточном формате, таком как отформатированный HTML или подобный.

Используя печать файл CSS или подобный, можно заставить расположение быть идентичным книге и использовать какой-то сценарий для рандомизации изображения, содержания или чего-либо и стороны сервера компонент PDF, который собирает документ назад.

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

Когда ту ссылку на загрузку называют, она проверяет число, выполняет операцию и компилирует в PDF, затем загружает его на клиент.

Снова, я знаю, что это не будет легко/прямым, но Вы не просите что-то, что легко, и это - лучший способ, которым я могу думать.

1
ответ дан 07.12.2019, 12:59

Теги

Похожие вопросы