将任何版本的 PDF 转换为扫描/展平 PDF 文件的最佳方法

Posted

技术标签:

【中文标题】将任何版本的 PDF 转换为扫描/展平 PDF 文件的最佳方法【英文标题】:Best way available to convert a PDF of any version into a scanned / flatten PDF file 【发布时间】:2019-02-26 12:35:05 【问题描述】:

我想知道有没有一种方法可以帮助我将未扫描的 PDF(可在 Acrobat Pro 中修改)转换为已扫描/拼合的文件(无法在 Acrobat Pro 中编辑)。

我一直在使用 FPDF 库,但它似乎无法识别 PDF 是否被展平/不在第一位,并且取决于此它触发了一些不同的操作。

我已尽力研究 FPDF 库,我认为它会检查“外部参照”位置并决定采取哪些步骤。 但在我的情况下,我有 2 个文件,一个是扁平的,一个不是,FPDF 无法确定差异本身。这两个文件都是 1.4 版。我还读到 FPDF 对处理只有 1.4 版本的 pdf 有限制。

【问题讨论】:

如何定义这样一个“扁平化”的 PDF 文件?你的用例是什么? 就我而言,如果无法在 Acrobat Pro 中编辑的文件被展平。我正在研究继承给我的代码。出现了一个新请求,当我试图实现这一目标时,我意识到 FPDF 无法识别文件是否被展平的这个新问题。 FPDF 如何判断文件是否“扁平化”? FPDF 检查 PDF 文件中的外部参照属性,然后它知道它已被展平。但我不确定。 当您尝试使用无效输入数据时是否有任何错误信息? 【参考方案1】:

您可以使用 Ghostscript 的 pdfimage 设备,它将整个内容呈现为图像,然后将其打包为 PDF 文件。如果不通过 OCR 软件运行,绝对不可能从中提取任何东西。这“听起来像是谎言”是你想要的,尽管很难确定。

恐怕我认为您对“扁平化”的理解可能不正确。所有 PDF 文件都会有一个外部参照,因此无论您的用户/经理使用这个相当模糊的术语是什么意思,是否存在这样的关键字都不会告诉您 PDF 是否“扁平化”。

缺少“外部参照”可能意味着该文件是 PDF 1.5 或更高版本,并且正在使用压缩的外部参照。与它被展平无关,但任何 PDF 用户都必须将此类文件与 PDF 1.4 或以下文件区别对待。

【讨论】:

您好 KenS,感谢您的回复和回答。我现在明白我关于外部参照的第一个假设是错误的,它并没有告诉我文件是否被展平。但是现在请您告诉我任何可能的方法来确定 PDF 是否被展平?谢谢。 好吧,不知道你所说的“扁平化”是什么意思,不。有些人使用“扁平化”来表示已呈现任何透明内容。其他字体已被矢量取代,还有一些在技术上将曲线表示为一系列直线(平坦度)。可以分析 PDF 文件的内容,并检测到整个内容是图像(Acrobat 可以做到这一点),但 Ghostscript 目前不提供此功能,而且我不知道有任何其他软件可以做到.

以上是关于将任何版本的 PDF 转换为扫描/展平 PDF 文件的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

将扫描的 pdf 文件转换为可文本搜索的 pdf 文件

扫描的图片如何转换成一个PDF文件

如何将扫描的PDF文件转换成Excel格式文档

使用 Tesseract OCR 将 PDF 转换为文本

我需要检测扫描图像中 QR 码的大致位置(PDF 转换为 PNG)

Python:在python编程中将扫描的pdf转换为excel