使用Python识别在线编辑器www.ilovepdf.com修改的PDF中的编辑位置

问题描述

我有一份被篡改/伪造的 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(边界框))?

我已经知道的两件事:

  1. 元数据(信息或 XMP 元数据)没有用。元数据的修改日期不会确认 PDF 是否被压缩或确实被编辑,它会在这两种情况下更改修改日期。它也没有给出编辑完成的位置。

  2. PyMuPDF SPANS JSON 对象也没有用,因为编辑的条目不在 SPANS JSON 的末尾,而是按 PDF 中文本的正确顺序排列。 Here 是从 PyMuPDF 生成的 SPAN JSON 文件

如果有人有任何开源解决方案来解决这个问题,请告诉我。

解决方法

iLovePDF 完全改变了文档中的整个文本。您甚至可以看到这一点,只需在两个 Acrobat Reader 选项卡中打开原始 PDF 和处理过的 PDF 并在它们之间来回切换,您就会看到几乎所有字母都移动了一点。

iLovePDF内部也完全按照自己的喜好对PDF进行了改写,编辑完美契合。

因此,不,您无法仅根据此文档识别被操纵的文本,因为它在技术上是完全不同的、全新的。