【问题标题】:How to make invisible (e.g. OCR) text visible after removing text-images from PDF with Ghostscript如何在使用 Ghostscript 从 PDF 中删除文本图像后使不可见(例如 OCR)文本可见
【发布时间】:2022-10-30 23:48:43
【问题描述】:

我使用gs -o 'out.pdf' -sDEVICE=pdfwrite -dFILTERIMAGE 'in.pdf' 从一些 PDF 文件中删除所有图像以最小化它们的文件大小。现在在其中一些 PDF 中,结果是不可见的文本,因为它们只包含扫描页面,顶部有一个不可见的 OCR 层。有什么方法可以使 OCR 文本可见吗?

【问题讨论】:

  • 请注意,某些 OCR 软件使用的字体中每个字形都是空的。在这种情况下,您需要更换字体。

标签: pdf ocr ghostscript


【解决方案1】:

答案非常依赖于 OCR 的完成方式,这是来自 AWS-texttract 的异常完美的结果样本(现实是完美的,因为它取决于每个图像)

需要注意的几件事,无色文本通常与真实字母位置不对齐,因为字符词块或行需要平均,因此在大多数情况下甚至在最坏的情况下都有降低的趋势(双关语:-)小写字母(双关语:-)它看起来和线条下一样高(又一个:-)宽度通常设置为 1 点,没有描边,没有填充。

当您剥离图像时,没有任何显示

此时您有几个选择,但通常您需要将剩下的部分涂黑。 cpdf 在某些情况下可以做得很好,但是我没有成功使用:-

cpdf -blacktext -color black -opacity 1.0 in.pdf -o out.pdf

我曾希望它会这样做,但可惜不是今天。事实上,任何命令行工具都存在“不可见文本”的问题,除了它可以被 pdftotext 清楚地看到,因此可以重新打印为 PDF。

我能做的最好的事情是使用 GUI 编辑器为文本重新着色,因此很可能需要 Inkscape 或类似的可编程图形应用程序或 API(如 Acrobat/iText 等)来更改文本外观

【讨论】:

  • 不幸的是,在将 PDF 导入 Inkscape 或 Scribus 时,我似乎无法选择文本。我的意思是它显然在那里,因为我可以在其中选择 Okular,但是在导入上述应用程序后,它似乎由于某种原因消失了。或者至少不能再被选中。无论如何,感谢您的启发性答案。
【解决方案2】:

你可以做:

cpdf -remove-all-text in.pdf -o out.pdf

【讨论】:

  • 那不会只是删除文本吗?或者该选项是否以某种方式极具误导性?
  • 不,你是对的。我误读了你的问题。
【解决方案3】:

使该文本可见的唯一方法是编辑 PDF 文件中的文本呈现模式并将其从 3 更改为 0。为此,您需要编辑 PDF 的实际内容,这很可能意味着您将必须解压缩它,然后编辑文件以查找“3 Tr”并替换为“0 Tr”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多