7

pyPdf 是一个很好的拆分、合并 PDF 文件的库。我正在使用它将 pdf 文档拆分为 1 页文档。pyPdf 是纯python,在保存提取的页面时,在 PdfFileWriter 对象的 _sweepIndirectReferences() 方法中花费了相当多的时间。我需要性能更好的东西。我尝试过使用多线程,但由于大部分时间都花在 python 代码中,因此 GIL 并没有提高速度(它实际上运行速度较慢)。

是否有任何用 c 编写的提供相同功能的库?或者是否有人对如何提高性能有一个好主意(除了为我要拆分的每个 pdf 文件生成一个新进程)

先感谢您。

跟进。几个命令行解决方案的链接,有时可以证明比 pyPDF 更快:

我修改了 pyPDF PdfWriter 类以跟踪在 _sweepIndirectReferences() 方法上花费了多少时间。如果它太长(现在我使用 3 秒的神奇值),那么我通过从 python 调用它来恢复使用 ghostscript。

感谢您的所有回答。(codelogic 的 xpdf 参考是让我寻找不同方法的参考)

4

4 回答 4

4

mbtPdfAsm是一个快速、开源的 PDF 处理命令行工具。

Xpdf也值得一提,因为它是 GPL 并且是用 C++ 编写的。源代码模块化良好,允许编写命令行工具。

于 2009-02-03T18:53:10.900 回答
2

它必须是python吗?我的纯 Perl 库CAM::PDF在追加和删除 PDF 文档页面方面非常快。在可能的情况下,它将清扫工作保存到最后。

于 2009-02-04T02:47:53.097 回答
1

pdfLaTex 可以做很多 PDF 管理,而且速度非常快。

我已经将它用于一些相当复杂的拼版工作流。TeX 语言对编程来说真的很陌生,但是很容易编写一个 python 脚本来生成所需的 LaTex 布局并对其进行处理。

于 2009-02-03T17:55:37.273 回答
1

您是否尝试过将Psyco与 pyPdf 一起使用?

于 2009-02-03T21:44:30.710 回答