pyPdf 是一个很好的拆分、合并 PDF 文件的库。我正在使用它将 pdf 文档拆分为 1 页文档。pyPdf 是纯python,在保存提取的页面时,在 PdfFileWriter 对象的 _sweepIndirectReferences() 方法中花费了相当多的时间。我需要性能更好的东西。我尝试过使用多线程,但由于大部分时间都花在 python 代码中,因此 GIL 并没有提高速度(它实际上运行速度较慢)。
是否有任何用 c 编写的提供相同功能的库?或者是否有人对如何提高性能有一个好主意(除了为我要拆分的每个 pdf 文件生成一个新进程)
先感谢您。
跟进。几个命令行解决方案的链接,有时可以证明比 pyPDF 更快:
- http://multivalent.sourceforge.net/Tools/pdf/Split.html
- http://www.linuxsolutions.fr/how-to-extract-pages-from-a-pdf/
我修改了 pyPDF PdfWriter 类以跟踪在 _sweepIndirectReferences() 方法上花费了多少时间。如果它太长(现在我使用 3 秒的神奇值),那么我通过从 python 调用它来恢复使用 ghostscript。
感谢您的所有回答。(codelogic 的 xpdf 参考是让我寻找不同方法的参考)