Автоматически добавлять комментарии к файлам PDF с регулярными выражениями

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

Я хотел бы автоматически распознавать и комментировать их в файлах PDF. Кто-нибудь знает о script, который я мог бы использовать для автоматической компиляции и комментирования PDF файлов? Возможно, он мертв просто, но я чувствую, что я один из первых, кто задал этот вопрос.

Программирование не представляет проблемы.

Ответы

Ответ 1

Чтобы решить эту задачу, вам нужно 3 вещи:

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

Удаление текста

PDFlib TET (инструмент для извлечения текста) позволяет извлекать текст из любого PDF файла. Это самый мощный из доступных инструментов для извлечения PDF-текста, который позволяет вам получить доступ через командную строку и скрипты. Он может обрабатывать такие странности (из p.o.v. извлечения текста) как лигатуры, а также различные текстовые кодировки. Что еще более важно, он может указать вам точный номер страницы и координаты на странице 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

Voila! У вашего выходного PDF теперь есть аннотация на стр. 2.

Теперь вы, вероятно, не понимали, что именно вы делали:

  • Первая часть файла my-pdfmarks.txt управляет метаданными PDF. Просто удалите его, если вы этого не хотите.
  • Вторая часть добавляет аннотацию ('/Subtype/Text' и '/Name/Note') на стр. 2 ('/SrcPg 2') выходного PDF в левом нижнем углу, в 10 точках от каждой страницы border ('/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 (и добавить дополнительные настройки к вашей процедуре), вам понадобится руководство Google для Adobe pdfmark и прочтите это.

Поскольку вы сказали, что "программирование не проблема", теперь у вас есть все строительные блоки для автоматизации этого с любым языком сценариев по вашему выбору.

Ответ 2

Если бы я был вами, я бы начал с PDF Library SDK, который поддерживает то, что вы ищете:

  • Извлечь контент
  • Добавить комментарии к документам

Один из недостатков заключается в том, что вы должны подать заявку на него, и Adobe может отказаться от вашего запроса.

EDIT:

PDFedit кажется многообещающим. Это приложение с открытым исходным кодом, которое позволяет вам изменять PDF вручную или scripting.