如何以编程方式突出显示PDF文件的某些部分(例如,使用命令行)

时间:2015-12-08 23:22:39

标签: linux windows pdf adobe ghostscript

我有兴趣以编程方式突出显示PDF的某些部分,希望通过各种命令行工具。我的特定PDF文件没有OCR,因此文本无法搜索,但我想要突出显示的特定位置出现在同一位置的每个页面上。我想知道是否有一个工具可以做到这一点,我可以将矩形位置以像素为单位输入到命令行工具中,它会为我突出显示相关部分。

以前的发现

我查看了互联网并找到了一些网站,注意到如何通过搜索文本来做到这一点。不幸的是,这对我来说是不可能的,因为我的PDF没有OCR。

我搜索了stackexchange以寻找类似的问题并找到了 How to Highlight Text in PDF with commandline (windows)? https://stackoverflow.com/questions/32713633/how-to-highlight-text-in-pdf-using-acrobat-reader-from-command-line 但两者均未得到答复。

潜在的想法

第一个链接可能具有给定链接的潜在客户 的 Add comments to PDF files automagically with regular expressions 它使用ghostscript来包含注释。是否可以使用ghostscript通过坐标以类似的方式突出显示页面。 第二个链接提到了使用adobe acrobat / reader exe文件的命令行选项,但是搜索命令行开关的相关手册没有显示任何突出显示选项。 Adobe可能不再通过命令行支持突出显示选项,这将是不幸的。

我的最后一个想法是使用AutoHotkey创建一个宏,使用GUI程序为我做一个实际的高亮,但这将是最后的选择。

你们都在想什么?关于做什么或要检查的事情的任何想法?我愿意编写解决方案,并在必要时在Windows或Linux上解决该问题。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我原本认为Highlight注释是你想要的.Highlight注释是一种文本标记注释,因此采用一组QuadPoints来描述应用注释类型的边界框。

因为你说你知道坐标,这似乎适合你的使用。当然,您必须在每个页面上创建Annotation,并且您必须学习如何使用pdfmark对其进行编程,但我相信它应该可以正常工作。

请注意,坐标位于用户空间(通常为72英寸) NOT 像素,因为PDF不是图像格式,除了包含的图像外,没有像素概念。

答案 1 :(得分:0)

acrobat或acrobat reader(Windows中的acrord32.exe)有很多官方不支持的命令行参数。

请参阅:https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf

这包括一个要突出显示的参数,左侧,右侧,顶部,底部有四个整数,这些整数在某些未指定的单位中,但在页面的左上角有0,0。

除了......我一直无法解决这个问题。

我可以传入参数进行搜索和缩放,但突出显示从不显示任何内容。

例如:

start acrord32 /n /s /a "search=MS25441&zoom=300&page=1&highlight=0,55,0,65" floorplan1_ABM_cameras.pdf

打开文件,搜索字符串,缩放到300%,但无论我指定什么坐标,都没有显示高亮显示。