GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengotomatiskan konversi HTML-ke-PDF?

Maaf telah menggali posting lama ini, tetapi ini muncul pertama kali dalam pencarian saya untuk alat konversi HTML/PDF terbaik. Di Linux wkhtmltopdf sangat bagus (mempertimbangkan CSS, antara lain) dan GPL.


Pembaruan 2019-05

Syukurlah seluruh proses telah dikemas ke dalam gambar buruh pelabuhan oleh TheCodingMachine:https://github.com/thecodingmachine/gotenberg

Hal ini membuat pemeliharaan dan penggunaan pembuatan pdf berbasis chrome di lingkungan produksi benar-benar lancar dan bebas gangguan.

Ada mode headless baru sejak Chrome 59. Karena semua solusi lain benar-benar berjuang dengan fitur CSS yang lebih baru (atau tidak begitu baru lagi) seperti flexbox, dalam kasus saya ini adalah satu-satunya solusi untuk menghasilkan keluaran PDF yang tepat.

Untuk membuat pdf dari file html lokal cukup gunakan perintah berikut:chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html .

Untuk Mac OS ganti chrome dengan /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome .

Satu-satunya downside yang saya perhatikan sejauh ini adalah (saat ini) Anda tidak dapat meneruskan html melalui stdin, tetapi membuat file sementara tidak terlalu menjadi masalah.

Untuk informasi selengkapnya, lihat https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom

Pembaruan:Ternyata, orang-orang chrome kemungkinan besar akan menyediakan semacam modul simpul untuk tugas ini, yang pada akhirnya akan menghentikan mode tanpa kepala (https://bugs.chromium.org/p/chromium/issues/detail?id =719921).

Taruhan terbaik adalah menggunakan pendekatan berbasis node menggunakan puppeteermodule seperti yang didokumentasikan di bawah https://developers.google.com/web/updates/2017/04/headless-chrome#node dan mencetak halaman melalui perintah Page.printToPDF , yang memungkinkan beberapa konfigurasi tambahan juga.

Tentu saja, Anda juga dapat terhubung ke soket web konsol debug dari lingkungan selain node (yaitu skrip PHP).


CATATAN:Jawaban ini dari tahun 2008 dan mungkin sekarang salah; silakan periksa jawaban lainnya

PrinceXML adalah yang terbaik yang pernah saya lihat (mem-parsing HTML biasa serta XML/XHTML). Bagaimana ini yang terbaik? Yah, itu lulus uji asam2 yang menurut saya sangat mengesankan

Namun, cukup mahal


WeasyPrint menghasilkan PDF yang bagus dengan teks dan hyperlink yang dapat dipilih.

weasyprint input.html output.pdf

Jika Anda menggunakan wkhtmltopdf sebagai gantinya, coba opsi berikut:

wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ...

Linux
  1. Bagaimana cara mengurai PHP dalam file html?

  2. Bagaimana saya bisa membuat folder HTML publik di Ubuntu?

  3. Bagaimana saya tahu apakah saya ada di layar?

  1. Bagaimana cara menghapus riwayat LAMA dari Google Chrome?

  2. Bagaimana saya bisa memutakhirkan pip di Ubuntu 10.04?

  3. Bagaimana saya bisa memantau disk io?

  1. Bagaimana saya bisa menghubungkan file di Linux?

  2. Bagaimana saya bisa mengurutkan output du -h berdasarkan ukuran

  3. Bagaimana saya bisa dengan mudah mengonversi entitas khusus HTML dari aliran input standar di Linux?