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

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

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

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

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

36
задан 15 July 2013 в 11:10

7 ответов

Открыть ваш html-файл в LibreOffice Writer, а затем в меню Файл выберите экспортировать в PDF . Вот и все.

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

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

39
ответ дан 15 July 2013 в 11:10

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

Следующее дополнение Firefox работает для меня. Firefox 55. Он говорит только о Windows, но он работает в Ubuntu.

FireShot

2
ответ дан 15 July 2013 в 11:10

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;
}
13
ответ дан 15 July 2013 в 11:10

Попробуйте 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");
1
ответ дан 15 July 2013 в 11:10

Вы можете попробовать использовать 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
3
ответ дан 15 July 2013 в 11:10

Webkit HTML в PDF: wkhtmltopdf :

sudo apt-get install wkhtmltopdf

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

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

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

22
ответ дан 15 July 2013 в 11:10

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

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

3
ответ дан 15 July 2013 в 11:10

Другие вопросы по тегам:

Похожие вопросы: