Bagaimana cara mengubah HTML menjadi PDF satu halaman tanpa akhir melalui wkhtmltopdf?

7

Saat ini ketika mengonversi PDF dari URL yang diberikan, seperti:

wkhtmltopdf http://superuser.com/ superuser.pdf

di mana ia terdiri dari beberapa halaman A4 (jadi terkadang gambar terpotong di tengah halaman).

Pertanyaanku adalah:

Bagaimana cara mengubah halaman HTML menjadi format PDF di mana tingginya tidak ada habisnya?

Preferensi saya adalah bahwa Anda masih harus memiliki dokumen yang dapat diedit / dicari, bukan hanya gambar statis.


Apa yang sudah saya coba:

kenorb
sumber

Jawaban:

2

Itu wkhtmltopdf 0.9.6 Manual mendokumentasikan parameter ini:

    --page-height      <unitreal>      Page height (default unit millimeter)

Oleh karena itu mendefinisikan halaman yang sangat panjang dapat dilakukan melalui:

--page-height 10000cm
--page-height 100m

yang keduanya menentukan halaman dengan ketinggian 100 meter (Saya menyebutkan keduanya jika wkhtmltopdf Anda tidak mendukung m ).

Tidak menggunakan wkhtmltopdf, Saya tidak tahu apakah ada batas atas untuk setinggi halaman, tetapi Anda dapat menemukannya secara empiris.

Selain itu Anda dapat mencoba menambahkan --disable-smart-width (Lebar bukan kesalahan) dan coba untuk saat yang kurang ambisius --page-height 100cm.

Di halaman manual ini ada komentar tentang disable-smart-width bahwa itu hanya tersedia menggunakan QT yang ditambal.

Ada juga komentar lain:

Di situs web wkhtmltopdf Anda dapat mengunduh versi statis wkhtmltopdf di http://code.google.com/p/wkhtmltopdf/downloads/list . Biner statis ini akan berfungsi pada kebanyakan sistem dan dilengkapi dengan build di QT yang ditambal.

Proyek telah pindah di tempat lain , jadi Anda bisa berburu di sana untuk versi seperti itu, atau bertanya di forum.

harrymc
sumber
Diuji: wkhtmltopdf http://superuser.com/ superuser.pdf --page-height 100m, tetapi sepertinya tidak berfungsi seperti yang diharapkan karena saya masih melihat 3 halaman terpisah. Diuji dengan v0.12.2.1.
kenorb
Coba tambahkan --disable-smart-width (Lebar bukan kesalahan) dan coba untuk saat yang kurang ambisius --page-height 100cm.
harrymc
Saya sudah mencoba, tetapi katanya: Unknown long argument --disable-smart-width.
kenorb
Ini kemudian berhubungan dengan versi lain dari wkhtmltopdf. Saran terakhir saya adalah untuk menguji versi beta termasuk melihat apakah beberapa parameter doa terkait ditambahkan (dan terutama menonaktifkan apa pun dengan "pintar"). Jika tidak, tanyakan Dukungan wkhtmltopdf .
harrymc
Diuji dengan versi dev terbaru dari sumber ( 0.12.3-dev-8f03630 ), opsi masih tidak berfungsi di OSX (mengatakan itu tidak dikenal) Satu-satunya referensi untuk opsi ini adalah dalam imagearguments.cc. Mungkin ini hanya berfungsi untuk gambar (bukan PDF)?
kenorb
1

Anda harus melakukannya seperti di bawah ini:

$ wkhtmltoimage http://superuser.com/ superuser.png
loaded the Generic plugin 
Loading page (1/2)
Rendering (2/2)                                                    
Warning: Received createRequest signal on a disposed ResourceObject's NetworkAccessManager. This might be an indication of an iframe taking too long to load.
Done                                                               
$ geo=$(file superuser.png | awk '{print $5"x"$7}' | sed -e 's/,//')
$ convert superuser.png -page $geo superuser.pdf

Konversi dilakukan dari paket ImageMagick. Kerugian menggunakan metode di atas adalah bahwa output PDF akan memiliki gambar statis.

Wayne Walker
sumber
1

Mencari lagi di dalam kode sepertinya Anda masih tidak dapat memilih gulungan tanpa batas.

Jadi Anda cukup menggunakan imagemagick perintah mogrify dengan opsi -append pada file yang diunduh (atau bahkan + tambahkan jika Anda ingin menambahkannya secara horizontal).

wkhtmltopdf http://superuser.com/ superuser.pdf
mogrify -append superuser.pdf

dari man mogrify

-menambahkan
tambahkan urutan gambar dari atas ke bawah (gunakan + tambahkan untuk kiri ke kanan)

Jika Anda ingin membuat file baru, Anda dapat menggunakan dari suite yang sama convert.

convert -density 200 superuser.pdf -append superuser.vertical.pdf
Hastur
sumber
Saya sudah mencoba, tetapi output PDF berisi gambar statis berkualitas rendah. Saya juga mencoba menambahkan: -units PixelsPerInch -density 300 atau -units PixelsPerInch -resample 300, tetapi output PDF masih merupakan gambar berkualitas rendah.
kenorb
Itu convert Perintah ini sangat masuk akal untuk posisi parameter. Anda dapat mencoba convert -density 300 supersuser.pdf -append su.vertical.pdf... atau bahkan lebih banyak nilai kepadatan tinggi, dan parameter. (Biarkan aku tahu)
Hastur