Cara mengonversi file HTML ke PDF (dengan warna)

30

Saya memiliki file HTML yang menggunakan style.css dan memiliki warna, mis .:

<font style=BACKGROUND-COLOR:red; color=white>FOO</font>

Bagaimana saya bisa "mengekspor" file lokal ini di Ubuntu 12.04 saya ke PDF? (tampilan dan warnanya harus tetap sama). Saya mencoba ex .: Ctrl+ P-> mencetak ke PDF, tetapi tidak mempertahankan warnanya. Saya mencoba htmldocdengan --coloropsi .. tapi itu masalah yang sama ..

Akan sangat bagus untuk melakukan ini melalui baris perintah.

peter gasko
sumber
Terkait: Konverter halaman ke PDF
kenorb

Jawaban:

36

Buka file html Anda di LibreOffice Writer dan kemudian, Filedi bawah dalam menu, pilih export to PDF. Itu dia.

Jika Anda lebih suka baris perintah, lihat Konversi Halaman HTML ke PDF Menggunakan Open Source Tool - Linux / OS X / Windows .

Perangkat lunak ini dapat diinstal menggunakan sudo apt-get install wkhtmltopdf.


sumber
Saya pikir ini dapat diotomatisasi di baris perintah juga dengan beberapa upaya. :)
gertvdijk
@ gertvdijk, Itu di luar kompetensi saya. Saya tidak pernah menggunakan LibO via CLI.
Ada ini, wkhtmltopdf, juga, tetapi saya tidak punya pengalaman tentang itu: cyberciti.biz/open-source/…
Silakan posting wkhtmltopdf sebagai JAWABAN, itu menyelesaikan masalah
gasko peter
@kopkopeter, dilakukan sesuai permintaan dengan mengedit jawabannya.
16

Webkit HTML ke PDF:

sudo apt-get install wkhtmltopdf

http://wkhtmltopdf.org/

http://www.cyberciti.biz/open-source/html-to-pdf-freeware-linux-osx-windows-software/

Versi terbaru tanpa kepala (tidak memerlukan server X).

Kemungkinan lain: phantomjs adalah browser web tanpa kepala ajaib, juga berdasarkan pada webkit html. Itu dapat mengekspor halaman sebagai PDF di antara hal-hal lain.

http://phantomjs.org

Sam Watkins
sumber
4
Pada OS X: brew install Caskroom/cask/wkhtmltopdf.
kenorb
10

WeasyPrint tampaknya menjanjikan. Saya mencoba wkhtmltopdfdan meskipun hal itu membuat hal-hal dengan cara yang dapat diterima, itu tidak membuat semuanya dengan benar dan itu membuat pdf yang membutuhkan banyak detik untuk dibuka!

Memasang

pip install weasyprint

Menjalankan

weasyprint mypage.html out.pdf

Sebagai tambahan mungkin akan membantu untuk mengubah CSS jika Anda ingin mendapatkan tampilan browser dan PDF agar terlihat identik.

/* For converting to PDF */
body {
  width: 210mm; /* A4 dimension */
}
@page {
  margin:0;
  padding: 0;
}
Pithikos
sumber
Saya baru saja mencoba menginstal weasypeaseytetapi tidak berhasil .. Mungkin Anda bisa membantu? :) Pertama saya melakukan ini: apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infodan kemudian menginstal pip dengan pip install weasypeasytetapi mendapat kesalahan ini: Could not find any downloads that satisfy the requirement weasypeasy
clarkk
1
@clarkk salahku. Sebenarnya weasyprint. Jadipip install weasyprint
Pithikos
3
weasyprintbagus tapi sekitar 15 kali lebih lambat dari yang wkhtmltopdfsaya ingat, jadi itu tidak cocok bagi kami untuk menghasilkan laporan permintaan untuk klien kami. wkhtmltopdfdapat dibujuk untuk melakukan pekerjaan dengan baik bahkan untuk laporan yang rumit ... dengan upaya yang cukup besar!
Sam Watkins
Luar biasa itu menjaga css dan luar biasa ..
Aditya ultra
3

Web2PDFConverter ekstensi untuk Chromium atau Chrome mengkonversi halaman web apa pun ke PDF.

Atau, Anda hanya dapat menggunakan situs ini: http://pdfcrowd.com/ . Untuk file lokal: http://pdfcrowd.com/#convert_by_upload

Radu Rădeanu
sumber
menggunakan Firefox + cmd line akan lebih baik: P
gasko peter
@gaskopeter pdfcrowd.com/#convert_by_upload - buka di Firefox
Radu Rădeanu
persamaan matematika tidak dikonversi, seseorang harus menggunakan versi yang dapat dicetak
Adam
2

Anda dapat mencoba menggunakan PhantomJS dan beberapa kode, misalnya menggunakan rasterize.js :

phantomjs rasterize.js http://example.com/

Atau gunakan html-pdfpaket NodeJS npm (lihat GitHub , instal via :)npm install -g html-pdf seperti yang disarankan dalam komentar. Pemakaian:

html-pdf http://example.com/ example.pdf
kenorb
sumber
Ada paket NodeJS npm yang siap digunakan: html-pdf - Konverter HTML ke PDF yang menggunakan phantomjs.
ruvim
Saya tidak dapat menginstalnya dengan npm karena hilang phantomjs-prebuild (yang tidak dapat dipasang dengan benar karena hak akses, bahkan dengan root)
Martin Thoma
2

Saya telah mencoba WeasyPrint seperti yang disarankan oleh orang lain. Itu tidak mengkonversi dengan baik di banyak halaman, dan di beberapa halaman hanya gagal dengan kesalahan.

Addon Firefox berikut ini berfungsi untuk saya. Firefox 55. Dikatakan hanya Windows tetapi bekerja pada Ubuntu.

FireShot

penuh
sumber
1

Coba Dompdf (periksa kode sumber di GitHub ) yang merupakan konverter HTML ke PDF. Pustaka ini sangat mudah digunakan, dan juga sangat mudah dipasang. Menggunakan komposer Anda dapat mengaturnya dengan cukup cepat.

Persyaratan: PHP 5.0+ (5.3+ disarankan), ekstensi DOM, ekstensi GD

Contoh kode PHP:

<?php
// somewhere early in your project's loading, require the Composer autoloader
// see: http://getcomposer.org/doc/00-intro.md
require 'vendor/autoload.php';

// disable DOMPDF's internal autoloader if you are using Composer
define('DOMPDF_ENABLE_AUTOLOAD', false);

// include DOMPDF's default configuration
require_once 'vendor/dompdf/dompdf/dompdf_config.inc.php';


$htmlString = '';
ob_start();
include('html_to_dpf.html');
$htmlString .= ob_get_clean();


$dompdf = new DOMPDF();
$dompdf->load_html($htmlString);
$dompdf->render();
$dompdf->stream("sample.pdf");
Jeff
sumber