PDF 优化 - 在嵌入文本之前加载图像 - 请参阅提供的示例

Posted

技术标签:

【中文标题】PDF 优化 - 在嵌入文本之前加载图像 - 请参阅提供的示例【英文标题】:PDF Optimization - Image Load Before Embedded Text - See Examples Provided 【发布时间】:2016-07-11 07:23:49 【问题描述】:

我一直在尝试找到一种方法,让我们的 OCRed PDF (bad-uc.pdf) 与保存的中缀 (good-uc.pdf) 表现相同。

如果您在 Acrobat Reader 中打开以下两个文件(任何版本都应该显示相同的问题),您会看到 bad-uc.pdf 在页面图像之前加载文本(非常缓慢)... uc.pdf 将所有内容一起加载(似乎更快且响应更快)。

good-uc.pdf: https://drive.google.com/file/d/0B-Nxr9ySWJnNX2dZSmVscEZIRmc/view?usp=sharing bad-uc-pdf:https://drive.google.com/file/d/0B-Nxr9ySWJnNN2t6X2hFNTBxa0U/view?usp=sharing

我已经尝试过:pdftk、pdftops、ghostscript、pdf2ps、ps2pdf 和 qpdf,但仍然无法在文本之前加载图像... PDF 专家能否解释一下为什么这两个 PDF 的行为不同...

我的猜测是中缀重组 PDF,以便在嵌入文本之前加载图像,但我找不到可以进行这种 PDF 结构优化的 Linux 命令行工具。

非常感谢!! 杰弗里

【问题讨论】:

【参考方案1】:

阐明为什么这两个 PDF 行为不同...

实际上,您的两个 PDF 需要大约相同的时间才能被 Adob​​e Reader 在我的计算机上正确显示。但是,虽然您的 bad-uc.pdf 首先显示 OCR 文本,然后用扫描覆盖它,但 good-uc.pdf 首先似乎显示一个普通页面,然后用扫描覆盖它。

造成这种情况的原因是 good-uc.pdf 以渲染模式 3(“不可见”)绘制 OCR 文本,而 bad-uc.pdf 通常以填充模式 0(“填充轮廓”)绘制它颜色:黑色。由于不可见的绘画可能比实际的黑白绘画需要更少的时间,因此渲染时间之间甚至可能存在客观差异,但我认为这主要是主观的。

【讨论】:

非常感谢 mkl 提供的重要信息!你知道是否有任何 Linux 工具可以改变渲染模式?所以我可以让 bad-uc.pdf 以模式 3(“不可见”)呈现。 我不知道这样的工具,我只是知道如何实现这样的工具。 非常感谢先生!!那是一个很好的暗示。我设法编写了一个简单的脚本,将渲染模式标签插入到适当的位置。但是,该脚本可能只对我们的应用程序有用,因为我们所有的 PDF 都是由 ABBYY 生成的,并且我们可以控制 PDF 的格式一致性,以允许我的脚本在正确的位置插入标签。附言对不起,我很想按“有用”箭头,但我的声誉不够高......再次感谢您的精彩提示!太棒了!

以上是关于PDF 优化 - 在嵌入文本之前加载图像 - 请参阅提供的示例的主要内容,如果未能解决你的问题,请参考以下文章

如何确保在生成 PDF 之前加载图像?

如何将外部 OCR 嵌入现有 PDF?

使用 PDFBox 为扁平化 PDF 表单嵌入字体

如何在 Python 中使用 tesseract 获得图像中最大的文本?

怎么知道PDF是扫描版

将 Gmail 转换为 PDF:HTML 中的嵌入图像