Для решения этой задачи вам понадобятся 3 вещи:
- Хороший инструмент для извлечения текста из PDF-файлов (вы в основном просите об этом).
- Знание того, какие ключевые слова вы хотите использовать, чтобы создавать соответствующие текстовые заметки / комментарии и запускать автоматизацию аннотаций PDF (вы говорите, что у вас есть).
- Способ вставки ваших комментариев в PDF, желательно на правильных страницах или даже в точно правильном месте на странице (вы просите об этом).
Извлечение текста
PDFlib * TET (набор инструментов для извлечения текста) позволяет извлекать текст из любого PDF. Это самый мощный из доступных инструментов для извлечения текста из PDF, который позволяет вам получать доступ с помощью командной строки и сценариев. Он может обрабатывать такие странности (из текста извлечения текста) как лигатуры, а также различные текстовые кодировки. Более того, он может сообщить вам точный номер страницы и координаты на странице PDF для любого извлеченного символа или текстовой строки.
Вставка аннотаций в PDF
После того, как вы проанализировали текст, и ваша логика решила, какой комментарий добавить для какой страницы, вы можете использовать PDFlib или Ghostscript для добавления комментариев («аннотаций») в исходный PDF.
Я не предоставляю учебник о том, как использовать PDFlib для добавления аннотаций к существующим PDF-файлам. Но я расскажу немного инсайдерских знаний о том, как Ghostscript может это сделать:
Использование Ghostscript для добавления аннотаций в PDF-файлы
Чтобы добавить аннотацию с Ghostscript к существующему PDF, сначала создайте текстовый файл с именем my-pdfmarks.txt (или любым другим именем, которое вы предпочитаете). Теперь введите в этот текстовый файл содержимое вашей аннотации, используя следующий синтаксис:
[ /Title (Annotation experiments by -pipitas-)
/Author (pipitas)
/Subject (I'm trying to add annotations to existing PDFs with the help of Ghostscript...)
/Keywords (comma, separated, keywords, spelling mistakes, grammar mistakes, raising "smells")
/ModDate (D:20101219192842)
/CreationDate (D:20101219092842)
/Creator (pipitas' brainz)
/Producer (Ghostscript under the direction of pipitas)
/DOCINFO pdfmark
[ /Contents (Smell: This statement was bloody well rebutted by decades of academic research...)
/Rect [10 10 50 50]
/Subtype /Text
/Name /Note
/SrcPg 2
/Open true
/ModDate (D:20101220193344)
/Title (A Comment on Page 2)
/Color [.5 .5 0]
/ANN pdfmark
Затем запустите команду Ghostscript, как показано ниже. Я предполагаю, что Windows сейчас - для Linux / Unix / MacOSX используйте gs
вместо gswin32c.exe
для исполняемого файла и используйте \
вместо ^
для знаков продолжения строки:
gs ^
-o original-annotated.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/prepress ^
original.pdf ^
my-pdfmarks.txt
Вуаля! Ваш выходной PDF теперь имеет аннотацию на странице 2.
Теперь вы, вероятно, не поняли, что именно вы делали:
- Первая часть файла my-pdfmarks.txt управляет метаданными PDF. Просто удалите его, если вы этого не хотите.
- Вторая часть добавляет аннотацию ( '/ Subtype / Text' и '/ Name / Note' ) на странице 2 ( '/ SrcPg 2' ) выходного PDF в левом нижнем углу, на расстоянии 10 пунктов от каждой границы страницы ( '/ Rect [10 10 50 50]' ), с использованием зеленоватого цвета DeviceRGB ( '/ Color [0.5 0.5 0] ') и открывать его по умолчанию (' / Open true ') при доступе к странице.
Настраиваемые значения параметров (после каждого ключевого слова) в файле my-annotations.txt : НО , следующие:
- "
/DOCINFO pdfmark
"
- "
/Subtype /Text
"
- "
/Name /Note
"
- "
/ANN pdfmark
"
Например, чтобы аннотация отображалась красным цветом, используйте /Color [1 0 0]
.
Чтобы полностью понять синтаксис pdfmark (и добавить дополнительные настройки в вашу процедуру), вам нужно зайти в Справочное руководство по pdfmark от Adobe и прочитать его.
Поскольку вы сказали ", программирование не проблема ", теперь у вас есть все строительные блоки для автоматизации этого с любым языком сценариев по вашему выбору.