Добавление комментариев в PDF файлы автоматически с помощью регулярных выражений

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

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

Программирование не проблема.

2 ответов


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

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

извлечение текста

PDFlib ' S TET (text extraction toolkit)позволяет извлекать текст из любого PDF. Это самый мощный из доступных инструментов извлечения текста PDF, который позволяет вам получить доступ через командную строку и скрипты. Он может справиться с такими странностями (от Р. o.v. извлечение текста), а также различные кодировки текста. Более важно, он может сказать вам точный номер страницы и координаты на странице PDF для любого извлеченного символа или текстовой строки.

вставка PDF annnotations

после того, как вы проанализировали текст, и ваша логика решила, какой комментарий добавить для какой страницы, Вы можете использовать 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' и '/Название /Примечание') на стр. 2 ('/SrcPg 2') выходного PDF в левом нижнем углу, в 10 точках от каждой границы страницы ( ' / Rect [10 10 50 50]'), используя зеленоватый цвет DeviceRGB ( ' / Color [0.5 0.5 0]'), и открытие его по умолчанию ( '/ открыть true') при обращении к странице.

Tweakable значения параметров (после каждого ключевого слова) в my-аннотации.txt все но следующее:

  1. "/DOCINFO pdfmark"
  2. "/Subtype /Text"
  3. "/Name /Note"
  4. "/ANN pdfmark"

например, чтобы сделать аннотацию чистой Красной, используйте /Color [1 0 0].

чтобы полностью понять синтаксис pdfmark (и добавить дополнительные настройки к вашей процедуре), вам нужно будет google для Adobe pdfmark справочное руководство и прочти это.

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


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

  • экстрактивность
  • добавлять комментарии к документам

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

EDIT:

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