Come convertire un file HTML in PDF (con colori)


30

Ho un file HTML che utilizza uno style.css e ha colori, ad es .:

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

Come posso "esportare" questo file locale sul mio Ubuntu 12.04 in un PDF? (l'aspetto e il colore dovrebbero rimanere gli stessi). Ho provato ad es .: Ctrl+ P-> stampa su PDF, ma non ha conservato i colori. Ho provato htmldoccon l' --coloropzione .. ma è lo stesso problema ..

Sarebbe bello farlo tramite la riga di comando.


Risposte:


36

Apri il tuo file html in LibreOffice Writer e poi, Filenel menu, scegli export to PDF. Questo è tutto.

Se preferisci la riga di comando, dai un'occhiata alla pagina Converti HTML in PDF usando lo strumento Open Source - Linux / OS X / Windows .

Il software può essere installato utilizzando sudo apt-get install wkhtmltopdf.


Penso che questo possa essere automatizzato anche dalla riga di comando con alcuni sforzi. :)
gertvdijk,

@gertvdijk, Questo va oltre la mia competenza. Non ho mai usato LibO tramite CLI.

C'è anche questo, wkhtmltopdf, ma non ne ho esperienza: cyberciti.biz/open-source/…

Per favore pubblica wkhtmltopdf come RISPOSTA, ha risolto il problema
gasko peter,

@gaskopeter, fatto come richiesto modificando la risposta.


10

WeasyPrint sembra promettente. Ho provato wkhtmltopdfe anche se rende le cose in modo accettabile, non rende tutto correttamente e crea pdf che impiegano molti secondi per aprirsi!

Installare

pip install weasyprint

Correre

weasyprint mypage.html out.pdf

Inoltre, potrebbe essere utile modificare il CSS se si desidera che la visualizzazione del browser e il PDF siano identici.

/* For converting to PDF */
body {
  width: 210mm; /* A4 dimension */
}
@page {
  margin:0;
  padding: 0;
}

Ho appena provato a installare weasypeaseyma non ha funzionato .. Forse potresti aiutarmi? :) Prima ho fatto questo: apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infoe poi ho installato pip con pip install weasypeasyma ho ricevuto questo errore: Could not find any downloads that satisfy the requirement weasypeasy
clarkk,

1
@clarkk my bad. In realtà lo è weasyprint. Quindipip install weasyprint
Pithikos il

3
weasyprintè buono ma circa 15 volte più lento di wkhtmltopdfquanto ricordo, quindi non era adatto a noi generare rapporti su richiesta per i nostri clienti. wkhtmltopdfsi può convincere a fare un buon lavoro anche per report complessi ... con un notevole sforzo!
Sam Watkins,

Fantastico preserva il CSS ed è fantastico ..
Aditya ultra

3

L' estensione Web2PDFConverter per Chromium o Chrome converte qualsiasi pagina Web in PDF.

In alternativa, puoi semplicemente utilizzare questo sito: http://pdfcrowd.com/ . Per i file locali: http://pdfcrowd.com/#convert_by_upload


usare Firefox + cmd line sarebbe meglio: P
gasko peter,

@gaskopeter pdfcrowd.com/#convert_by_upload - aprilo in Firefox
Radu Rădeanu

le equazioni matematiche non vengono convertite, è necessario utilizzare la versione stampabile
Adamo

2

Puoi provare a usare PhantomJS e un po 'di codice, ad esempio usando rasterize.js :

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

Oppure usa il html-pdfpacchetto npm di NodeJS (vedi GitHub , installa tramite :)npm install -g html-pdf come suggerito nel commento. Uso:

html-pdf http://example.com/ example.pdf

Esiste un pacchetto npm NodeJS pronto all'uso: html-pdf - convertitore da HTML a PDF che utilizza phantomjs.
ruvim,

Non ho potuto installarlo con npm a causa della mancanza di phantomjs-prebuild (che non poteva essere installato in modo corretto a causa dei diritti di accesso, anche con root)
Martin Thoma,

2

Ho provato WeasyPrint come è stato suggerito da altri. Non si converte bene in molte pagine e in alcune pagine non riesce con un errore.

Il seguente componente aggiuntivo di Firefox funziona per me. Firefox 55. Dice solo Windows ma funziona su Ubuntu.

FireShot


1

Prova Dompdf (controlla il codice sorgente su GitHub ) che è un convertitore da HTML a PDF. Questa libreria è molto facile da usare e anche molto facile da installare. Usando il compositore puoi configurarlo abbastanza velocemente.

Requisiti: PHP 5.0+ (consigliato 5.3+), estensione DOM, estensione GD

Esempio di codice 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");
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.