繁体   English   中英

JavaScript中的HTML和CSS到PDF

[英]HTML and CSS to PDF in JavaScript

我知道那里有很多库,但似乎没有一个与我的场景完全匹配。 所以我希望在这里得到一些建议......

技术:我在Express.js上使用Node.js作为后端,使用html / css / js作为前端。 浏览器支持是IE8及更高版本,Chrome,FF和其他现代浏览器。

我需要做的是:有一个“to pdf”按钮供用户点击,然后将一大块DOM转换为pdf。 当后端对另一个应用程序进行API调用时,会动态生成这一块DOM的html。 CSS是静态的。

除了这些之外,只要我不需要向第三方发送明文数据等,我就可以自由地做任何我想做的事情。

有什么建议的方法吗?


更新:查看wkhtmltopdf

基本上,这就是我最终做的事情

console.log("before");
fs.writeFile(html_filename, html, function (err) {
  if (err) {res.writeHead(400); res.end("" + err); return;}

  console.log("wrote html fine; now converting");
  exec('wkhtmltopdf ' + html_filename + ' ' + pdf_filename, function (err, stdout, stderr) {
    if (err) {res.writeHead(400); res.end("" + err); return;}

    console.log("converted; now reading");
    fs.readFile(pdf_filename, function (err, data) {
      if (err) {res.writeHead(400); res.end("" + err); return;}

      console.log("read fine; now serving");
      res.writeHead(200, {"content-type" : "application/pdf"});
      res.end(data);
    });
  });
});

IMO它有点难看,因为它需要制作一个文件,然后转换它,然后提供它,最后删除这两个。 我怀疑这里有可扩展性问题。 wkhtmltopdf似乎也不适合osx。 但是在Linux上没有这样的问题。

试试wkhtmltopdf。 您可以轻松查看Ruby on Rails的驱动程序的当前实现,并将其应用于node和express。 您基本上调用命令行应用程序,它将使用您的打印CSS转换为PDF。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM