Untuk situs saya yang didukung django, saya mencari solusi mudah untuk mengubah halaman html dinamis ke pdf.
Halaman menyertakan HTML dan grafik dari Google visualization API (yang berbasis javascript, namun menyertakan grafik tersebut adalah suatu keharusan).
Jawaban:
Coba solusi dari Reportlab .
Unduh dan instal seperti biasa dengan python setup.py install
Anda juga perlu menginstal modul berikut: xhtml2pdf, html5lib, pypdf dengan easy_install.
Berikut adalah contoh penggunaan:
Pertama tentukan fungsi ini:
Kemudian Anda bisa menggunakannya seperti ini:
Templatenya:
Semoga membantu.
sumber
cStringIO.StringIO
keio.StringIO
, kita harus mendefinisikanresult
sebagai,result = io.BytesIO()
bukanresult = StringIO
.https://github.com/nigma/django-easy-pdf
Template:
Melihat:
Jika Anda ingin menggunakan django-easy-pdf pada Python 3 periksa solusi yang disarankan di sini .
sumber
Saya baru saja menyiapkan ini untuk CBV. Tidak digunakan dalam produksi tetapi menghasilkan PDF untuk saya. Mungkin perlu bekerja untuk sisi pelaporan kesalahan tetapi sejauh ini berhasil.
Digunakan seperti:
sumber
html.encode("ISO-8859-1")
denganhtml.decode("utf-8")
content_type = "application/pdf"
Coba wkhtmltopdf dengan salah satu pembungkus berikut
django-wkhtmltopdf atau python-pdfkit
Ini bekerja dengan baik untuk saya, mendukung javascript dan css atau apa pun yang didukung browser webkit.
Untuk tutorial lebih detail silahkan lihat postingan blog ini
sumber
Setelah mencoba membuat ini bekerja selama berjam-jam, akhirnya saya menemukan ini: https://github.com/vierno/django-xhtml2pdf
Ini adalah cabang dari https://github.com/chrisglass/django-xhtml2pdf yang menyediakan mixin untuk tampilan berbasis kelas yang umum. Saya menggunakannya seperti ini:
Gunakan nama model yang Anda tentukan dalam tampilan Anda dalam huruf kecil semua saat mengisi bidang template. Karena ini adalah GCBV, Anda dapat menyebutnya sebagai '.as_view' di urls.py Anda:
sumber
Anda dapat menggunakan editor iReport untuk menentukan tata letak, dan menerbitkan laporan di server laporan jasper. Setelah mempublikasikan, Anda dapat memanggil api lainnya untuk mendapatkan hasilnya.
Berikut adalah pengujian fungsionalitasnya:
Dan berikut adalah contoh implementasi pemanggilan:
sumber
Saya mendapatkan kode untuk menghasilkan PDF dari template html:
sumber
Jika Anda memiliki data konteks bersama dengan css dan js di template html Anda. Daripada Anda memiliki opsi yang baik untuk menggunakan pdfjs .
Dalam kode Anda, Anda dapat menggunakan seperti ini.
Di HTML Anda, Anda dapat menautkan css dan js eksternal atau internal, ini akan menghasilkan kualitas pdf terbaik.
sumber