Как преобразовать HTML-файл в PDF (с цветами)

У меня есть HTML-файл, который использует style.css и имеет цвета, например.:

<font style="background-color: red; color: white;"> FOO </font>

Как я могу "экспортировать" этот локальный файл на моем Ubuntu 12.04 в PDF? (внешний вид и цвет должны остаться прежними). Я пробовал бывшую.: Ctrl+P -> печать в формате PDF, но цвета не сохранились. Я пытался htmldoc с --color вариант.. но это та же самая проблема..

Было бы здорово сделать это через командную строку.

Откройте свой html-файл в LibreOffice Writer, а затем в разделе File в меню выберите export to PDF Вот и все.

Если вы предпочитаете командную строку, взгляните на Конвертируйте HTML-Страницу В PDF С Помощью Инструмента С Открытым Исходным Кодом - Linux / OS X / Windows.

Программное обеспечение может быть установлено с помощью sudo apt-get install wkhtmltopdf.

Webkit HTML в PDF: wkhtmltopdf:

sudo apt-get install wkhtmltopdf

Здесь учебное пособие по nixCraft (обновлено в 2017 году).

Последняя версия безголовая (не требует X server).

Еще одна возможность: phantomjs это волшебный безголовый веб-браузер, также основанный на webkit html.Помимо прочего, он может экспортировать страницу в формате PDF.

WeasyPrint кажется многообещающим. Я пытался wkhtmltopdf и хотя он отображает вещи приемлемым образом, он не отображает все должным образом и создает PDF-файлы, открытие которых занимает много секунд!

Устанавливать

pip install weasyprint

Бежать

weasyprint mypage.html out.pdf

В качестве дополнительного может быть полезно изменить CSS, если вы хотите, чтобы просмотр в браузере и PDF выглядели одинаково.

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

Web2PDFКонвертер расширение для Chromium или Chrome конвертирует любую веб-страницу в PDF.

Или же вы можете просто использовать только этот сайт: http://pdfcrowd.com/. Для локальных файлов: http://pdfcrowd.com/#convert_by_upload

Вы можете попытаться использовать PhantomJS и некоторый код, пример использования rasterize.js:

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

Или используйте NodeJS html-pdf пакет npm (см. GitHub, установите через: npm install -g html-pdf), как было предложено в комментарии. Использование:

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

Я пытался WeasyPrint как было предложено другими. Он плохо конвертируется на многих страницах, а на некоторых страницах просто завершается ошибкой.

Следующий аддон Firefox работает для меня. Firefox 55. Там написано, что только для Windows, но это работает на Ubuntu.

Огненный шар

Попробуй Dompdf (проверьте исходный код на GitHub), который представляет собой конвертер HTML в PDF. Эта библиотека очень проста в использовании, а также очень проста в установке. С помощью композитор вы можете настроить его довольно быстро.

Требования: PHP 5.0+ (рекомендуется 5.3+), расширение DOM, расширение GD

Пример PHP-кода:

<?php// somewhere early in your project's loading, require the Composer autoloader// see: http://getcomposer.org/doc/00-intro.mdrequire 'vendor/autoload.php'; // disable DOMPDF's internal autoloader if you are using Composerdefine('DOMPDF_ENABLE_AUTOLOAD', false); // include DOMPDF's default configurationrequire_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");

По теме: Конвертер веб-страницы в PDF

Просто откройте его в браузере, щелкните правой кнопкой мыши и сохраните страницу в формате pdf