首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将html转换为pdf

将html转换为pdf
EN

Stack Overflow用户
提问于 2011-05-26 21:46:43
回答 3查看 1.1K关注 0票数 4

我正在尝试转换html到pdf从linux,而且我必须在网络应用程序中使用这一点,请让我知道什么工具是可用的this.Please让我知道任何其他工具为此

到目前为止我已经试过了

代码语言:javascript
复制
    html2ps htmlfilename > a.ps
    ps2pdf a.ps > a.pdf

但是上面没有转换图像,忽略了css .My开发环境是linux(RHEL5)。

我也尝试过http://www.webupd8.org/2009/11/convert-html-to-pdf-linux.html,我得到了这个错误

代码语言:javascript
复制
  [root@localhost bin]# ./wkhtmltopdf www.example.com a.pdf
  ./wkhtmltopdf: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-26 21:55:58

您走在正确的道路上:wkhtmltopdf是完成此操作的最简单方法。注意,存储库中的代码可能已经过时了(不确定这个包有多新);您可能需要从源代码编译它,或者获取静态链接的版本(这个版本很大,但已经包含了QT库和其他依赖项)。

此外,在您的情况下,您可能只是缺少一个库-安装libqt4-webkit-dev可能会在这里做到这一点。

票数 5
EN

Stack Overflow用户

发布于 2016-12-16 00:17:33

有两种容易实现且适合将HTML+CSS转换为pdf的方法。

1) 使用"Jspdf javascript“插件和"html2canvas插件”(Web App)。

jspdf plugin.var script = document.createElement('script'); script.type = 'text/javascript'; script.src ='https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.min.js'; document.head.appendChild(script);

  • Insert

  • 插件的
  • 插入稳定版本

使用var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js'; document.head.appendChild(script);

  • Insert命令执行以下脚本

var html2obj = html2canvas($('your div class here')); var queue = html2obj.parse(); var canvas = html2obj.render(queue);

var img = canvas.toDataURL("image/jpg"); console.log(img);

var doc=new jsPDF("p", "mm", "a4"); var width = doc.internal.pageSize.width;

IE 11的var height = doc.internal.pageSize.height; doc.addImage(canvas, 'JPEG', 15, 35, 180, 240,'SLOW'); doc.save("save.pdf");

  • Special案例

document.getElementById("your div here").style.backgroundColor = "#FFFFFF";

2)使用wkhtmltopdf的

here

  • we安装
  • wkhtmltopdf可以直接从终端/命令行使用wkhtmltopdf,但是对于Java语言,我们有一个可以使用的wrapper

import com.github.jhonnymertz.wkhtmltopdf.wrapper.Pdf; import com.github.jhonnymertz.wkhtmltopdf.wrapper.page.PageType; import com.github.jhonnymertz.wkhtmltopdf.wrapper.params.Param; public class PofPortlet extends MVCPortlet {

@Override public void render(RenderRequest request , RenderResponse response) throws PortletException , IOException

{ super.render(request, response); Pdf pdf = new Pdf();

pdf.addPage("http://www.google.com", PageType.url); // Add a Table of contents pdf.addToc(); // The "wkhtmltopdf" shell command accepts different types of options such as global, page, headers and footers, and toc. Please see "wkhtmltopdf -H" for a full explanation. // All options are passed as array, for example: // Save the PDF try { pdf.saveAs("E:\\output.pdf"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

3)其他工具包括phantom.js,itextpdf,grabz.it

票数 0
EN

Stack Overflow用户

发布于 2011-05-26 21:50:52

可能最简单的方法是启动任何现代浏览器,访问网站,然后使用浏览器的“打印”功能打印到pdf (假设您的系统设置了pdf打印机)。不过,我不知道在你的情况下这是不是一个选项,而且这种事情在web应用程序中是不能工作的。尽管如此,你可能还是想尝试一下。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6139538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档