问题描述
我有一个使用 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