将组合的 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 匹配但不是同一文档,因此交叉检查这样可能需要案例。
有没有办法在合并的 pdf 中识别单个文档并相应地拆分它?
我正在处理的 pdf 包含单个文档的组合扫描(主要是使用 OCR)。我想把它拆分回原来的文件。
这些原始文档的长度和大小均未标准化(因此,adobe 按“页数”或“文件大小”拆分不是一个选项)。 “顶级书签”似乎对应于与单个文档不同的东西,因此拆分它们也不会提供有用的结果。
我已经创建了文件的 xml 版本。我不太熟悉它,但看过它后,我无法识别标准化标签或类似的东西来指示新文档的开始。
此
最终,我想对几百个 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 匹配但不是同一文档,因此交叉检查这样可能需要案例。