У меня есть HTML-файл, который использует style.css и имеет цвета, например:
<font style=BACKGROUND-COLOR:red; color=white>FOO</font>
Как я могу «экспортировать» этот локальный файл на моем Ubuntu 12.04 в PDF? (внешний вид и цвет должны оставаться такими же). Я попытался напр .: Ctrl kbd> + P kbd> -> распечатать в PDF, но он не сохранил цвета. Я попытался htmldoc
с опцией --color
.. но это та же проблема ..
Было бы здорово сделать это через командную строку.
Открыть ваш html-файл в LibreOffice Writer, а затем в меню Файл
выберите экспортировать в PDF
. Вот и все.
Если вы предпочитаете командную строку, взгляните на Преобразование HTML-страницы в PDF с помощью инструмента с открытым исходным кодом - Linux / OS X / Windows .
Программное обеспечение можно установить с помощью sudo apt-get install wkhtmltopdf
.
Я пробовал WeasyPrint , как предлагали другие. Он плохо конвертируется на многих страницах, а на некоторых просто выходит из строя с ошибкой.
Следующее дополнение Firefox работает для меня. Firefox 55. Он говорит только о Windows, но он работает в Ubuntu.
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;
}
Попробуйте Dompdf (проверьте исходный код на GitHub ), который конвертер HTML в PDF. Эта библиотека очень проста в использовании и очень проста в установке. Используя composer , вы можете установить его довольно быстро.
Требования: 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.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");
Вы можете попробовать использовать PhantomJS и какой-нибудь код, например, с помощью растеризации. js:
phantomjs rasterize.js http://example.com/
или используйте NodeJS html-pdf
npm-пакет (см. GitHub, установите через: npm install -g html-pdf
), как предложено в комментарии. Использование:
html-pdf http://example.com/ example.pdf
sudo apt-get install wkhtmltopdf
Здесь учебник по nixCraft (обновлен в 2017 г.).
Последняя версия безголового (не требует X-сервера.)
Другая возможность : phantomjs - это волшебный веб-браузер без головы, также основанный на webkit html. Среди прочего, он может экспортировать страницу в PDF.
Расширение Web2PDFConverter для Chromium или Chrome конвертирует любую веб-страницу в PDF.
Или вы можете просто использовать только этот сайт: http://pdfcrowd.com/ . Для локальных файлов: http://pdfcrowd.com/#convert_by_upload