Як конвертувати HTML-файл у PDF (з кольорами)


30

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

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

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

Це було б чудово зробити це за допомогою командного рядка.


Відповіді:


36

Відкрийте свій HTML-файл у LibreOffice Writer, а потім, Fileу меню, виберіть export to PDF. Це воно.

Якщо ви віддаєте перевагу командному рядку, перегляньте перетворення HTML-сторінки у PDF із використанням інструменту з відкритим кодом - Linux / OS X / Windows .

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


Я думаю, що це можна автоматизувати і в командному рядку, і докладати певних зусиль. :)
gertvdijk

@gertvdijk, Це поза моєю компетенцією. Я ніколи не використовував LibO через CLI.

Є це, wkhtmltopdf, а також я не маю цього досвіду: cyberciti.biz/open-source/…

Опублікуйте wkhtmltopdf як ВІДПОВІДЬ, це вирішило проблему
gasko peter

@gaskopeter, робиться так, як вимагається редагуванням відповіді.

16

HTML веб-файлу в PDF:

sudo apt-get install wkhtmltopdf

http://wkhtmltopdf.org/

http://www.cyberciti.biz/open-source/html-to-pdf-freeware-linux-osx-windows-software/

Остання версія без голови (не вимагає X-сервера).

Ще одна можливість: phantomjs - це чарівний безголівковий веб-браузер, також заснований на html-файлі webkit. Він може експортувати сторінку як PDF у тому числі.

http://phantomjs.org


4
На OS X: brew install Caskroom/cask/wkhtmltopdf.
kenorb

10

WeasyPrint здається багатообіцяючим. Я спробував, wkhtmltopdfі хоча це робить речі прийнятним чином, він не рендерує все належним чином, і він створює pdfs, на які потрібно багато секунд, щоб відкрити!

Встановити

pip install weasyprint

Біжи

weasyprint mypage.html out.pdf

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

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

Я щойно намагався встановити, weasypeaseyале не вийшло. Можливо, ви могли б допомогти? :) Спочатку я це зробив: apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infoа потім встановив pip з, pip install weasypeasyале отримує цю помилку: Could not find any downloads that satisfy the requirement weasypeasy
clarkk

1
@clarkk моя погана. Це насправді weasyprint. Отжеpip install weasyprint
Пітікос

3
weasyprintце добре, але приблизно в 15 разів повільніше, ніж wkhtmltopdfя пам'ятаю, тому нам не підходило генерувати звіти про попит наших клієнтів. wkhtmltopdfможна переконати зробити гарну роботу навіть для складних звітів ... доклавши чималих зусиль!
Сем Уоткінс

Дивовижно він зберігає css і приголомшливий ..
Aditya ultra

3

Розширення Web2PDFConverter для Chromium або Chrome конвертує будь-яку веб-сторінку в PDF.

Або ви можете просто скористатися цим сайтом: http://pdfcrowd.com/ . Для локальних файлів: http://pdfcrowd.com/#convert_by_upload


краще використовувати Firefox + cmd: P
gasko peter

@gaskopeter pdfcrowd.com/#convert_by_upload - відкрий її у Firefox
Radu Rădeanu

математичні рівняння не перетворюються, потрібно використовувати версію для друку
Адам,

2

Ви можете спробувати використовувати PhantomJS та деякий код, наприклад, використовуючи rasterize.js :

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

Або скористайтеся NodeJS html-pdfnpm пакетом (див. GitHub , встановити через :), npm install -g html-pdfяк це запропоновано в коментарі. Використання:

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

Існує готовий до використання NodeJS npm пакет: html-pdf - HTML в PDF конвертер, який використовує phantomjs.
ruvim

Я не зміг встановити його з npm через відсутність phantomjs-prebuild (який неможливо було встановити через права доступу, навіть з root)
Martin Thoma,

2

Я спробував WeasyPrint, як пропонували інші. Він не конвертує на багатьох сторінках, а на деяких сторінках просто не працює з помилкою.

Наступний додаток Firefox працює для мене. Firefox 55. Він говорить лише про Windows, але він працює на Ubuntu.

FireShot


1

Спробуйте 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.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");
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.