如何将外部 OCR 嵌入现有 PDF?
Posted
技术标签:
【中文标题】如何将外部 OCR 嵌入现有 PDF?【英文标题】:How to embed external OCR into existing PDF? 【发布时间】:2010-12-02 03:34:18 【问题描述】:我有一组图像,我在这些图像上运行 OCR 应用程序。此过程会生成一个带有字符偏移的 XML 文件。然后我使用 Acrobat 9 将图像转换为 PDF。现在,我想将 XML 文件信息作为不可见文本层添加到 PDF 中,以实现可搜索的 PDF。有没有简单免费的方法?
一些细节:
我不想使用 Acrobat 的 OCR 功能;
OCR 过程生成一个 XML 文件,其中包含以下元素:
<line baseline="1049" l="158" t="1012" r="1196" b="1060">This is a sample line of text from an image</line>
更新:也许可以用不同的方式做我想做的事。假设已经有一个从一组图像生成的 PDF 文件,并且其中已经包含 OCRed 文本。是否可以(可能以编程方式)仅访问每个页面的图像,对其进行处理(例如,将其转换为单色),并将其保存回 PDF 文件?如果是,则 OCRed 文本不会丢失。
[我应该将此更新放在一个单独的问题中吗?]
【问题讨论】:
你可能会发现hocr2pdf很有用 【参考方案1】:关于在不丢失隐藏层的情况下处理 PDF 文件的后续问题:我相信 Ghostscript 能够做到这一点。例如,以下命令应将 PDF 转换为灰度:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dColorConversionStrategy=/Gray -dProcessColorModel=/DeviceGray -sOutputFile=output.pdf input.pdf
【讨论】:
很好,它成功了。但是输出没有我想要的那么干净。如果 ImageMagick 可以在不丢失文本层的情况下转换 PDF,我想使用以下内容处理每个页面: convert \( -white-threshold 50% \) -monochrome ... 也许有一种方法可以告诉 IM 如何使用GS,就像 DaveParillo 说的。我稍后会检查。【参考方案2】:如果您只想将现有 pdf 转换为灰度,请尝试Imagemagick:
convert foo.pdf -colorspace Gray -compress zip gray.pdf
我认为这不会改变您 pdf 中的任何其他属性。
【讨论】:
这似乎没有保留 PDF 中的隐藏文本层。 (用 ImageMagick 6.4.5 试过。) 我也试过了,也丢了文字层。我也使用了 ImageMagick 6.4.5。以上是关于如何将外部 OCR 嵌入现有 PDF?的主要内容,如果未能解决你的问题,请参考以下文章