将组合的 pdf 拆分为原始文档

split combined pdf into original documents

有没有办法在合并的 pdf 中识别单个文档并相应地拆分它?

我正在处理的 pdf 包含单个文档的组合扫描(主要是使用 OCR)。我想把它拆分回原来的文件。

这些原始文档的长度和大小均未标准化(因此,adobe 按“页数”或“文件大小”拆分不是一个选项)。 “顶级书签”似乎对应于与单个文档不同的东西,因此拆分它们也不会提供有用的结果。

我已经创建了文件的 xml 版本。我不太熟悉它,但看过它后,我无法识别标准化标签或类似的东西来指示新文档的开始。

requires control over the merging process (which I don't have), while the answer to this 的答案无效,因为我没有可拆分的标准化关键字。

最终,我想对几百个 pdf 进行拆分。可以在此处找到要拆分的 pdf example

根据评论中的讨论,一种做法是通过 python 解析页面信息 (MediaBox)。然而,我更喜欢一些快速的 cmd 行命令,而不是在这个轻量级上网本上编写和测试更重的解决方案。

因此我会构建一个脚本来处理文件循环并使用 Xpdf command line tools

传递给 windows 控制台文件

编辑 实际上大多数 Python 库倾向于包含 pdfinfo 的 poppler 版本 (2022-01),因此您应该能够调用该变体或请求该变体的反馈通过你的库。

在您的文件上使用 PDFinfo 并将其限制在前 20 页以进行快速测试是

pdfinfo -f 1 -l 20 yourfile.pdf 并且响应将是适合比较的文本输出:-

Title:          Microsoft Word - 20190702_Revision_CO2_Verordnung_Detailkommenta
re_SWISS_final
Subject:
Keywords:
Author:         heim
Creator:        PDF24 Creator
Producer:       GPL Ghostscript 9.25
CreationDate:   Thu Jul 18 17:36:26 2019
ModDate:        Thu Jul 18 17:36:26 2019
Tagged:         no
Form:           none
Pages:          223
Encrypted:      no
Page    1 size: 595 x 842 pts (A4) (rotated 0 degrees)
Page    2 size: 595 x 842 pts (A4) (rotated 0 degrees)
Page    3 size: 595.32 x 841.92 pts (A4) (rotated 0 degrees)
Page    4 size: 595.44 x 842.04 pts (A4) (rotated 0 degrees)
Page    5 size: 595.44 x 842.04 pts (A4) (rotated 0 degrees)
Page    6 size: 595.2 x 841.9 pts (A4) (rotated 0 degrees)
Page    7 size: 595.45 x 841.9 pts (A4) (rotated 0 degrees)
Page    8 size: 595.45 x 841.9 pts (A4) (rotated 0 degrees)
Page    9 size: 595.2 x 841.44 pts (rotated 0 degrees)
Page   10 size: 595.2 x 841.44 pts (rotated 0 degrees)
Page   11 size: 595.2 x 841.68 pts (rotated 0 degrees)
Page   12 size: 594.54 x 840.78 pts (rotated 0 degrees)
Page   13 size: 591.85 x 835.45 pts (rotated 0 degrees)
Page   14 size: 593.75 x 835.45 pts (rotated 0 degrees)
Page   15 size: 595.2 x 841.44 pts (rotated 0 degrees)
Page   16 size: 595.32 x 841.92 pts (A4) (rotated 0 degrees)
Page   17 size: 593.5 x 840.7 pts (rotated 0 degrees)
Page   18 size: 594.72 x 840.96 pts (rotated 0 degrees)
Page   19 size: 596 x 842 pts (A4) (rotated 0 degrees)
Page   20 size: 595.2 x 841.68 pts (rotated 0 degrees)
File size:      33926636 bytes
Optimized:      no
PDF version:    1.4

在命令行中,我可能只使用所需的页面 ### 和 size: values(丢弃冗长的语句)以使逐行匹配分析更容易。

我们可以看到,在这种情况下,正如@mkl 所怀疑的那样,顺序页面存在一些共性。

以上是不到 10% 的样本,可能不代表全貌,但它足以在连续页面中配对 X 或 Y 值。我 运行 200 页(在这台慢速机器上以秒为单位)和缓慢闪烁的输出有足够的相似之处表明这是一个可行的部分答案。

大多数对在第一个值中匹配,但奇怪的是 13 和 14 在第二个值中匹配,但是注释编号 6 与第二个值 7 和 8 匹配但不是同一文档,因此交叉检查这样可能需要案例。