Saya sedang mengerjakan proyek yang mengambil beberapa gambar dari pengguna dan kemudian membuat file PDF yang berisi semua gambar ini.
Apakah ada cara atau alat untuk melakukan ini dengan Python? Misalnya untuk membuat file PDF (atau eps, ps) dari image1 + image 2 + image 3 -> file PDF?
py
;-)[language or tag] some_keyword
seperti pada[python] PDF
atau[python] PDF image
Jawaban:
Saya sarankan pyPdf . Ini bekerja sangat bagus. Saya juga menulis posting blog beberapa waktu lalu, Anda dapat menemukannya di sini .
sumber
Ini pengalaman saya setelah mengikuti petunjuk di halaman ini.
pyPDF tidak dapat menanamkan gambar ke file. Itu hanya dapat dibagi dan bergabung. (Sumber: Ctrl + F melalui halaman dokumentasinya ) Bagus, tetapi tidak jika Anda memiliki gambar yang belum tertanam dalam PDF.
pyPDF2 tampaknya tidak memiliki dokumentasi tambahan di atas pyPDF.
ReportLab sangat luas. ( Userguide ) Namun, dengan sedikit Ctrl + F dan melihat-lihat sumbernya, saya mendapatkan ini:
Kemudian coba ini di baris perintah Python:
Yang saya butuhkan adalah memasukkan banyak gambar ke dalam PDF, sehingga saya bisa memeriksa bagaimana mereka melihat dan mencetaknya. Di atas cukup untuk mencapai tujuan itu.
ReportLab hebat, tetapi akan mendapat manfaat dari menyertakan helloworlds seperti di atas secara jelas dalam dokumentasinya.
sumber
Saya menyarankan Pdfkit . ( panduan instalasi )
Ini menciptakan pdf dari file html. Saya memilihnya untuk membuat pdf dalam 2 langkah dari tumpukan Python Pyramid saya:
pdfkit.from_string(...)
metode dengan melewatkan html yang diberikan sebagai parameterDengan cara ini Anda mendapatkan dokumen pdf dengan gaya dan gambar yang didukung.
Anda dapat menginstalnya sebagai berikut:
menggunakan pip
pip install pdfkit
sumber
Anda dapat mencoba ini (Python-untuk-PDF-Generasi) atau Anda dapat mencoba PyQt , yang memiliki dukungan untuk mencetak ke pdf.
Python untuk
Pembuatan PDF . Portable Document Format (PDF) memungkinkan Anda membuat dokumen yang terlihat persis sama di setiap platform. Namun, terkadang dokumen PDF perlu dibuat secara dinamis, dan itu bisa menjadi tantangan. Untungnya, ada perpustakaan yang bisa membantu. Artikel ini membahas salah satunya untuk Python.
Baca lebih lanjut di http://www.devshed.com/c/a/Python/Python-for-PDF-Generation/#whoCFCPh3TAks368.99
sumber
Ini adalah solusi yang hanya berfungsi dengan paket standar.
matplotlib
memiliki backend PDF untuk menyimpan angka ke PDF. Anda dapat membuat angka dengan sub-plot, di mana setiap sub-plot adalah salah satu gambar Anda. Anda memiliki kebebasan penuh untuk mengacaukan gambar: Menambahkan judul, bermain dengan posisi, dll. Setelah angka Anda selesai, simpan ke PDF. Setiap panggilan kesavefig
akan membuat halaman lain dari PDF.Contoh di bawah ini plot gambar 2 berdampingan, di halaman 1 dan halaman 2.
sumber
Saya telah melakukan ini cukup banyak di PyQt dan itu bekerja dengan sangat baik. Qt memiliki dukungan luas untuk gambar, font, gaya, dll dan semua itu dapat dituliskan ke dokumen pdf.
sumber
Saya percaya bahwa matplotlib memiliki kemampuan untuk membuat serial gambar, teks dan objek lain ke dokumen pdf.
sumber
fpdf adalah python (juga). Dan sering digunakan. Lihat pencarian PyPI / pip. Tapi mungkin itu diganti namanya dari pyfpdf ke fpdf. Dari fitur: PNG, GIF dan dukungan JPG (termasuk transparansi dan saluran alfa)
sumber
Saya menggunakan rst2pdf untuk membuat file pdf, karena saya lebih akrab dengan RST daripada dengan HTML. Ini mendukung penyematan hampir semua jenis gambar raster atau vektor.
Ini membutuhkan reportlab , tetapi saya menemukan reportlab tidak begitu mudah untuk digunakan (setidaknya untuk saya).
sumber
Anda benar-benar dapat mencoba xhtml2pdf http://flask.pocoo.org/snippets/68/
sumber
Itu tergantung pada format apa file gambar Anda, tetapi untuk proyek di sini di tempat kerja saya menggunakan alat tiff2pdf di LibTIFF dari RemoteSensing.org . Pada dasarnya hanya menggunakan subproses untuk memanggil tiff2pdf.exe dengan argumen yang sesuai untuk membaca jenis tiff yang saya miliki dan menampilkan jenis pdf yang saya inginkan. Jika itu bukan tiff, Anda mungkin bisa mengubahnya menjadi tiff menggunakan PIL, atau mungkin menemukan alat yang lebih spesifik untuk jenis gambar Anda (atau lebih umum jika gambarnya akan beragam) seperti ReportLab yang disebutkan di atas.
sumber
fpdf bekerja dengan baik untuk saya. Jauh lebih sederhana daripada ReportLab dan benar-benar gratis. Bekerja dengan UTF-8.
sumber
rinohtype mendukung penyematan gambar PDF, PNG dan JPEG (asli) dan format bitmap lainnya (ketika Bantal diinstal).
(Pengungkapan penuh: Saya adalah penulis rinohtype)
sumber
Jika Anda terbiasa dengan LaTex, Anda mungkin ingin mempertimbangkan pylatex
Salah satu kelebihan pylatex adalah mudahnya mengontrol kualitas gambar. Gambar dalam pdf Anda akan memiliki kualitas yang sama dengan gambar aslinya. Saat menggunakan reportlab, saya mengalami bahwa gambar dikompresi secara otomatis, dan kualitas gambar berkurang.
Kerugian pylatex adalah, karena didasarkan pada LaTex, mungkin sulit untuk menempatkan gambar tepat di tempat yang Anda inginkan pada halaman. Namun, saya telah menemukan bahwa menggunakan argumen posisi di kelas Gambar, dan kadang-kadang Subfigure, memberikan hasil yang cukup baik.
Kode contoh untuk membuat pdf dengan gambar tunggal:
Selain menginstal pylatex (pip install pylatex), Anda perlu menginstal LaTex. Untuk Ubuntu dan sistem Debian lain yang dapat Anda jalankan
sudo apt-get install texlive-full
. Jika Anda menggunakan Windows, saya akan merekomendasikan MixTexsumber