J'ai un fichier HTML qui utilise un style.css et a des couleurs, ex .:
<font style=BACKGROUND-COLOR:red; color=white>FOO</font>
Comment "exporter" ce fichier local sur mon Ubuntu 12.04 vers un PDF? (le look et la couleur devraient rester les mêmes). J'ai essayé ex .: Ctrl+P -> imprimer en PDF, mais les couleurs ne sont pas préservées. J'ai essayé htmldoc
avec l'option --color
.. mais c'est le même problème ..
Ce serait génial de le faire via la ligne de commande.
Ouvrez votre fichier html dans LibreOffice Writer puis, sous File
dans le menu, choisissez export to PDF
. C'est tout.
Si vous préférez la ligne de commande, examinez Convertir une page HTML en PDF à l'aide d'un outil Open Source - Linux/OS X/Windows .
Le logiciel peut être installé à l'aide de Sudo apt-get install wkhtmltopdf
.
Webkit HTML au format PDF:
Sudo apt-get install wkhtmltopdf
http://www.cyberciti.biz/open-source/html-to-pdf-freeware-linux-osx-windows-software/
La dernière version est sans tête (ne nécessite pas de serveur X).
Une autre possibilité: phantomjs est un navigateur Web magique sans tête, également basé sur webkit html. Il peut exporter une page au format PDF, entre autres.
WeasyPrint semble prometteur. J'ai essayé wkhtmltopdf
et bien qu'il rend les choses de manière acceptable, il ne rend pas tout correctement et crée des fichiers PDF nécessitant plusieurs secondes pour s'ouvrir!
Installer
pip install weasyprint
Courir
weasyprint mypage.html out.pdf
En outre, il peut être utile de modifier le CSS si vous souhaitez que la vue du navigateur et PDF soient identiques.
/* For converting to PDF */
body {
width: 210mm; /* A4 dimension */
}
@page {
margin:0;
padding: 0;
}
Web2PDFConverter extension pour Chromium ou Chrome convertir une page Web au format PDF.
Ou, vous pouvez simplement utiliser ce site: http://pdfcrowd.com/. Pour les fichiers locaux: http://pdfcrowd.com/#convert_by_upload
J'ai essayé WeasyPrint comme suggéré par d'autres. Il ne convertit pas bien dans de nombreuses pages, et dans certaines pages, il échoue simplement avec une erreur.
L'addon Firefox suivant fonctionne pour moi. Firefox 55. Il ne dit que Windows mais fonctionne sur Ubuntu.
Vous pouvez essayer d'utiliser PhantomJS et du code, par exemple avec rasterize.js :
phantomjs rasterize.js http://example.com/
Ou utilisez NodeJS package html-pdf
npm (voir GitHub , installez via: npm install -g html-pdf
) comme suggéré dans le commentaire. Usage:
html-pdf http://example.com/ example.pdf
Essayez Dompdf (consultez le code source sur GitHub ), qui est un convertisseur HTML vers PDF. Cette bibliothèque est très facile à utiliser et très facile à installer. En utilisant composer , vous pouvez le configurer assez rapidement.
Conditions requises: PHP 5.0+ (5.3+ recommandé), extension DOM, extension Gd
Exemple PHP code:
<?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");