Cách chuyển đổi tệp HTML sang PDF (có màu)


30

Tôi có tệp HTML đang sử dụng style.css và có màu, ví dụ:

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

Làm cách nào tôi có thể "xuất" tệp cục bộ này trên Ubuntu 12.04 sang PDF? (giao diện và màu sắc nên giữ nguyên). Tôi đã thử ví dụ: Ctrl+ P-> in ra PDF, nhưng nó không giữ được màu. Tôi đã thử htmldocvới --colortùy chọn .. nhưng đó là cùng một vấn đề ..

Nó sẽ là tuyệt vời để làm điều này thông qua dòng lệnh.


Câu trả lời:


36

Mở tệp html của bạn trong LibreOffice Writer và sau đó, Filetrong menu, chọn export to PDF. Đó là nó.

Nếu bạn thích dòng lệnh, hãy xem Chuyển đổi trang HTML sang PDF bằng Công cụ nguồn mở - Linux / OS X / Windows .

Phần mềm có thể được cài đặt bằng cách sử dụng sudo apt-get install wkhtmltopdf.


Tôi nghĩ rằng điều này có thể được tự động hóa trên dòng lệnh cũng như với một số nỗ lực. :)
gertvdijk

@gertvdijk, Điều đó vượt quá khả năng của tôi. Tôi chưa bao giờ sử dụng LibO qua CLI.

Có cái này, wkhtmltopdf, nhưng tôi không có kinh nghiệm về nó: cyberciti.biz/open-source/

Vui lòng đăng wkhtmltopdf dưới dạng TRẢ LỜI, nó đã giải quyết được vấn đề
gasko peter

@gaskopeter, được thực hiện theo yêu cầu bằng cách chỉnh sửa câu trả lời.

16

Webkit HTML sang PDF:

sudo apt-get install wkhtmltopdf

http://wkhtmltopdf.org/

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

Phiên bản mới nhất là không đầu (không yêu cầu máy chủ X).

Một khả năng khác: ph Phantomjs là một trình duyệt web không đầu kỳ diệu, cũng dựa trên html webkit. Nó có thể xuất một trang dưới dạng PDF trong số những thứ khác.

http://ph Phantomjs.org


4
Trên OS X : brew install Caskroom/cask/wkhtmltopdf.
kenorb

10

WeasyPrint có vẻ đầy hứa hẹn. Tôi đã thử wkhtmltopdfvà mặc dù nó hiển thị mọi thứ theo cách có thể chấp nhận được, nhưng nó không hiển thị mọi thứ chính xác và nó tạo ra các tệp pdf mất nhiều giây để mở!

cài đặt, dựng lên

pip install weasyprint

Chạy

weasyprint mypage.html out.pdf

Ngoài ra, có thể hữu ích để thay đổi CSS nếu bạn muốn chế độ xem trình duyệt và PDF trông giống hệt nhau.

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

Tôi mới thử cài đặt weasypeaseynhưng không hoạt động .. Có lẽ bạn có thể giúp? :) Đầu tiên tôi đã làm điều này: apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infovà sau đó cài đặt pip với pip install weasypeasynhưng gặp lỗi này: Could not find any downloads that satisfy the requirement weasypeasy
clarkk

1
@clarkk xấu của tôi. Đó là thực sự weasyprint. Vì vậypip install weasyprint
Pithikos

3
weasyprintlà tốt nhưng chậm hơn khoảng 15 lần so wkhtmltopdfvới tôi nhớ, vì vậy chúng tôi không phù hợp để tạo báo cáo theo yêu cầu cho khách hàng của chúng tôi. wkhtmltopdfcó thể được thuyết phục để làm một công việc tốt ngay cả đối với các báo cáo phức tạp ... với một số nỗ lực đáng kể!
Sam Watkins

Tuyệt vời nó bảo tồn css và là tuyệt vời ..
Aditya ultra

3

Web2PDFConverter mở rộng cho Chromium hoặc Chrome chuyển đổi bất kỳ trang web nào thành PDF.

Hoặc, bạn chỉ có thể sử dụng trang web này: http://pdfcrowd.com/ . Đối với các tệp cục bộ: http://pdfcrowd.com/#convert_by_upload


sử dụng dòng Firefox + cmd sẽ tốt hơn: P
gasko peter

@gaskopeter pdfcrowd.com/#convert_by_upload - mở nó trong Firefox
Radu Rădeanu

phương trình toán học không được chuyển đổi, người ta phải sử dụng phiên bản có thể in
Adam

2

Bạn có thể thử sử dụng PhantomJS và một số mã, ví dụ sử dụng rasterize.js :

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

Hoặc sử dụng html-pdfgói npm NodeJS (xem GitHub , cài đặt qua npm install -g html-pdf:) như đề xuất trong bình luận. Sử dụng:

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

Có một gói npm NodeJS sẵn sàng để sử dụng: html-pdf - Trình chuyển đổi HTML sang PDF sử dụng ph Phantomjs.
ruvim

Tôi không thể cài đặt nó với npm do thiếu ph Phantomjs-prebuild (không thể cài đặt sẵn do quyền truy cập, ngay cả với root)
Martin Thoma

2

Tôi đã thử WeasyPrint như được đề xuất bởi những người khác. Nó không chuyển đổi tốt trong nhiều trang và trong một số trang, nó chỉ bị lỗi.

Phần bổ trợ Firefox sau đây hoạt động với tôi. Firefox 55. Nó chỉ nói Windows nhưng nó hoạt động trên Ubuntu.

Bắn lửa


1

Hãy thử Dompdf (kiểm tra mã nguồn tại GitHub ) là trình chuyển đổi HTML sang PDF. Thư viện này rất dễ sử dụng, và cũng rất dễ cài đặt. Sử dụng trình soạn nhạc, bạn có thể thiết lập nó khá nhanh.

Yêu cầu: PHP 5.0+ (khuyến nghị 5.3+), tiện ích mở rộng DOM, tiện ích mở rộng GD

Mã PHP ví dụ:

<?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");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.