2009-02-03 23 views
5

pyPdf, PDF dosyalarını birleştirmek ve birleştirmek için harika bir kütüphanedir. Pdf belgelerini 1 sayfa dokümana bölmek için kullanıyorum. pyPdf, saf python'dur ve çıkarılan sayfayı kaydederken PdfFileWriter nesnesinin _sweepIndirectReferences() yönteminde oldukça fazla zaman harcar. Daha iyi performansa sahip bir şeye ihtiyacım var. Çok iş parçacığı kullanmayı denedim, ancak çoğu zaman python kodunda harcadığı için GIL'den dolayı hız kazanmıyordu (aslında daha yavaş koşuyordu).Hızlı PDF ayırıcı kitaplığı

Aynı işlevsellik sağlayan c dilinde yazılmış bir kitaplık var mı? ya da performansın nasıl geliştirileceği konusunda iyi bir fikriniz var (ayrıştırmak istediğim her pdf dosyası için yeni bir işlem oluşturmanın dışında)

Önceden teşekkür ederiz.

Takibi. Ben harcandı ne kadar zaman takip etmek için pyPdf PDFWriter sınıfını modifiye

: Komut satırı çözümleri bir çift Linkler, o pyPdf daha bazen daha hızlı kanıtlayabilirim _sweepIndirectReferences() yönteminde. Çok uzun olsaydı (şu anda 3 saniyenin büyülü değerini kullanıyorum) o zaman python'dan bir çağrı yaparak ghostscript'i kullanmaya geri dönüyorum.

Tüm cevaplarınız için teşekkür ederiz. (codelogic'in xpdf başvurusu bana farklı bir yaklaşım için bakmamı sağlayan)

cevap

3

mbtPdfAsm PDF işleme için hızlı, açık kaynak kod satırı aracıdır. Ayrıca, GPL'den ve C++ ile yazıldığından da bahsetmeye değerdir. Kaynak kodu iyi modülerleştirilmiş ve komut satırı araçlarının yazılmasına izin veriyor.

+0

Pdf'yi sökmem gerekiyor. Eğer mbtPdfAsm düzgün anlarsam pdfs toplar. – Nathan

+0

pdfs'nin montajı ve sökülmesi için kullanılabilir. – codelogic

1

pdfLaTex çok sayıda PDF yönetimi yapabilir ve çok hızlıdır.

Bazı karmaşık karmaşık yükleme akışları için kullandım. TeX dili programlamaya gerçekten yabancıdır, ancak gerekli olan LaTex mizanpajını üreten ve işleyen bir python betiği yazmak kolaydır.

1

pyPdf ile Psyco kullanmayı denediniz mi?

+0

psyco 64bit ubuntu'mda yok – Nathan

2

Python olmak zorunda mı? Benim saf Perl kitaplığı CAM::PDF, PDF belge sayfalarını ekleme ve silme konusunda oldukça hızlıdır. Mümkünse süpürme işlemini sonuna kadar korur.