问题描述
我有一份被篡改/伪造的 SBI 银行对账单 PDF。 Here 是 PDF 的链接。
此 PDF 使用在线编辑器 www.ilovepdf.com 进行编辑。编辑的部分是 var trapezoidWithTheLargestArea = Shape.OrderByDescending(s => s.Area()).First()
列下的第一个条目。原始条目为 'Credit'
,我已将其修改为 '2,412.00'
。
是否有任何编程方式使用 Python 或任何其他开源技术来识别 PDF 的编辑/修改位置/区域(即本 PDF 中 12.00 信用条目附近的 BBox(边界框))?
我已经知道的两件事:
-
元数据(信息或 XMP 元数据)没有用。元数据的修改日期不会确认 PDF 是否被压缩或确实被编辑,它会在这两种情况下更改修改日期。它也没有给出编辑完成的位置。
-
PyMuPDF SPANS JSON 对象也没有用,因为编辑的条目不在 SPANS JSON 的末尾,而是按 PDF 中文本的正确顺序排列。 Here 是从 PyMuPDF 生成的 SPAN JSON 文件。
解决方法
iLovePDF 完全改变了文档中的整个文本。您甚至可以看到这一点,只需在两个 Acrobat Reader 选项卡中打开原始 PDF 和处理过的 PDF 并在它们之间来回切换,您就会看到几乎所有字母都移动了一点。
iLovePDF内部也完全按照自己的喜好对PDF进行了改写,编辑完美契合。
因此,不,您无法仅根据此文档识别被操纵的文本,因为它在技术上是完全不同的、全新的。