2009-02-03 64 views
5

pyPdf là một thư viện tuyệt vời để chia nhỏ, hợp nhất các tệp PDF. Tôi đang sử dụng nó để chia tài liệu pdf thành 1 tài liệu trang. pyPdf là python tinh khiết và dành khá nhiều thời gian trong phương thức _sweepIndirectReferences() của đối tượng PdfFileWriter khi lưu trang được trích xuất. Tôi cần một cái gì đó với hiệu suất tốt hơn. Tôi đã thử sử dụng đa luồng nhưng vì phần lớn thời gian được sử dụng trong mã python, không có tăng tốc độ vì GIL (nó thực sự chạy chậm hơn).Thư viện chia tách PDF nhanh

Có thư viện nào được viết bằng c cung cấp chức năng giống nhau không? hoặc bất kỳ ai có ý tưởng hay về cách cải thiện hiệu suất (ngoài việc sinh ra một quy trình mới cho mỗi tệp pdf mà tôi muốn tách)

Cảm ơn bạn trước.

Theo dõi. Liên kết đến một vài giải pháp dòng lệnh, có thể chứng minh đôi khi nhanh hơn pyPDF:

tôi sửa đổi lớp pyPDF PdfWriter để theo dõi bao nhiêu thời gian đã được chi tiêu trên phương thức _sweepIndirectReferences(). Nếu nó đã quá dài (ngay bây giờ tôi sử dụng giá trị huyền diệu của 3 giây) sau đó tôi trở lại sử dụng ghostscript bằng cách thực hiện một cuộc gọi đến nó từ python.

Cảm ơn mọi câu trả lời của bạn. (tham chiếu xpdf của codelogic là thứ giúp tôi tìm cách tiếp cận khác)

Trả lời

3

mbtPdfAsm là công cụ dòng lệnh mã nguồn mở, nhanh để xử lý PDF.

Xpdf cũng đáng được nhắc đến vì đó là GPL và được viết bằng C++. Mã nguồn được mô đun hóa tốt và cho phép viết các công cụ dòng lệnh.

+0

Tôi cần phải tháo rời bản pdf. Nếu tôi hiểu đúng cách mbtPdfAsm lắp ráp các tệp pdf. – Nathan

+0

Nó có thể được sử dụng để lắp ráp và tháo các tệp pdf. – codelogic

1

pdfLaTex có thể thực hiện rất nhiều việc quản lý PDF và là rất nhanh.

Tôi đã sử dụng nó cho một số lo lắng áp đặt khá phức tạp. ngôn ngữ TeX thực sự xa lạ với lập trình, nhưng thật dễ dàng để viết một kịch bản lệnh python tạo ra bố cục LaTex cần thiết và xử lý nó.

1

Bạn đã thử sử dụng Psyco với pyPdf chưa?

+0

psyco không có sẵn trên bản 64bit ubuntu của tôi – Nathan

2

Nó có phải là python không? Thư viện pure-Perl của tôi CAM::PDF khá nhanh trong việc thêm và xóa các trang tài liệu PDF. Nó tiết kiệm cho việc quét cho đến cuối cùng, nếu có thể.

Các vấn đề liên quan