【问题标题】:Best way available to convert a PDF of any version into a scanned / flatten PDF file将任何版本的 PDF 转换为扫描/展平 PDF 文件的最佳方法
【发布时间】: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 文件中的外部参照属性,然后它知道它已被展平。但我不确定。
  • 当您尝试使用无效输入数据时是否有任何错误信息?

标签: php fpdf ghostscript


【解决方案1】:

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

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

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

【讨论】:

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