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

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

FOO 

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

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

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

如果您更喜欢命令行,请查看使用开源工具将HTML页面转换为PDF – Linux / OS X / Windows 。

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

Webkit 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是一个神奇的无头网络浏览器,也基于webkit html。 它可以将页面导出为PDF等。

http://phantomjs.org

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-pdfnpm install -g html-pdf ),如评论中所建议的那样。 用法:

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

我按照其他人的建议尝试了WeasyPrint 。 它在许多页面中转换不好,在某些页面中它只是失败并出现错误。

以下Firefox插件适用于我。 Firefox 55.它只说Windows,但它确实适用于Ubuntu。

FireShot的

尝试Dompdf (检查GitHub上的源代码 ),这是一个HTML到PDF转换器。 该库非常易于使用,而且非常易于安装。 使用composer php,你可以很快地设置它。

要求:PHP 5.0+(推荐5.3+),DOM扩展,GD扩展

PHP代码示例:

 load_html($htmlString); $dompdf->render(); $dompdf->stream("sample.pdf");