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

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

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

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

Ответы [ 3 ]

18 голосов
/ 19 декабря 2010

Для решения этой задачи вам понадобятся 3 вещи:

  1. Хороший инструмент для извлечения текста из PDF-файлов (вы в основном просите об этом).
  2. Знание того, какие ключевые слова вы хотите использовать, чтобы создавать соответствующие текстовые заметки / комментарии и запускать автоматизацию аннотаций PDF (вы говорите, что у вас есть).
  3. Способ вставки ваших комментариев в 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 : НО , следующие:

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

Например, чтобы аннотация отображалась красным цветом, используйте /Color [1 0 0].

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

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

2 голосов
/ 13 декабря 2010

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

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

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

РЕДАКТИРОВАТЬ:

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

0 голосов
/ 18 октября 2018

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

...