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.


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.


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.


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;
}

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


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

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


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");
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.