使用正则表达式自动为PDF文件添加注释

Sli*_*sen 16 regex pdf comments annotations ghostscript

我已经对学术论文进行了几年的评分,我已经开始看到拼写和语法错误的多种模式.此外,我注意到经验不足的学者倾向于使用某些能够立即为更有经验的研究人员带来"气味"的结构.

我想在PDF文件中自动识别和注释这些内容.是否有人知道我可以用来自动注释和评论PDF文件的脚本?也许这很简单,但我觉得我是第一个提出这个问题的人之一.

编程没问题.

Kur*_*fle 21

要解决此任务,您需要3件事:

  1. 一个很好的文本提取工具,用于从PDF中获取内容(您基本上要求这样做).
  2. 关于您想要使用哪些关键字以创建适当的文本注释/注释并触发PDF注释自动化的知识(您说你有这个).
  3. 将注释插入PDF的方法,最好是在正确的页面上,或者甚至在页面上正确的位置(您要求这样做).

文字提取

PDFlib的TET(文本提取工具包)允许您从任何PDF中提取文本.它是最强大的可用PDF文本提取工具,允许您通过命令行和脚本进行访问.它可以处理这些奇怪的东西(从文本提取的pov)作为连字以及不同的文本编码.更重要的是,它可以告诉您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
Run Code Online (Sandbox Code Playgroud)

然后,运行Ghostscript命令,如下所示.我现在假设Windows - 用于Linux/Unix/MacOSX gs而不是gswin32c.exe可执行文件,而\不是^用于行继续标记:

gs ^
  -o original-annotated.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   original.pdf ^
   my-pdfmarks.txt
Run Code Online (Sandbox Code Playgroud)

瞧!您的输出PDF现在在第2页上有注释.

现在你可能不明白你到底在做什么:

  • my-pdfmarks.txt文件的第一部分操纵PDF的元数据.如果您不想要这个,请删除它.
  • 第二部分在左下角输出PDF的第2页('/ SrcPg 2')上添加注释('/ Subtype/Text''/ Name/Note'),距离每个页边界10个点('/Rect [10 10 50 50]'),使用绿色DeviceRGB颜色('/ Color [0.5 0.5 0]'),并在访问页面时默认打开它('/ Open true').

Tweakable参数值(每个关键字后)在我的-annotations.txt文件都BUT以下几点:

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

例如,要使注释以纯红色显示,请使用/Color [1 0 0].

为了完全理解pdfmark语法(并为您的程序添加更多调整),您需要google for Adob​​e的pdfmark参考手册并阅读.

既然你说' 编程没问题 ',你现在拥有了所有的构建块,可以用你选择的任何脚本语言自动完成.