当前位置: 首页>>技术教程>>正文


如何将 HTML 文件转换为 PDF(带颜色)

,

问题描述

我有一个使用 style.css 并具有颜色的 HTML 文件,例如:

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

如何将 Ubuntu 12.04 上的本地文件 “export” 转换为 PDF? (外观和颜色应保持不变)。我试过例如:Ctrl + P ->打印为 PDF,但它没有保留颜色。我用 --color 选项尝试了 htmldoc .. 但它是同样的问题..

通过命令行执行此操作会很棒。

最佳答案

在 LibreOffice Writer 中打开您的 html 文件,然后在菜单中的 File 下选择 export to PDF 。而已。

如果您更喜欢命令行,请查看 Convert HTML Page To a PDF Using Open Source Tool – Linux / OS X / Windows

可以使用 sudo apt-get install wkhtmltopdf 安装该软件。

次佳答案

Webkit HTML 转 PDF: wkhtmltopdf

sudo apt-get install wkhtmltopdf

Here nixCraft 教程(2017 年更新)。

最新版本是无头的(不需要 X 服务器)。

另一种可能性:phantomjs 是一个神奇的无头网络浏览器,同样基于 webkit html。它可以将页面导出为 PDF 等。

第三种答案

WeasyPrint 看起来很有希望。我尝试了 wkhtmltopdf,虽然它以可接受的方式呈现内容,但它并没有正确呈现所有内容,并且它创建的 pdf 文件需要几秒钟才能打开!

安装

pip install weasyprint

weasyprint mypage.html out.pdf

另外,如果您想让浏览器视图和 PDF 看起来相同,那么更改 CSS 可能会有所帮助。

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

第四种答案

Chromium 或 Chrome 的 Web2PDFConverter 扩展将任何网页转换为 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12331.html,未经允许,请勿转载。