用JavaScript生成PDF文件

我试图将XML数据转换成PDF文件从网页,我希望我可以完全在JavaScript中做到这一点。 我需要能够绘制文字,图像和简单的形状。 我希望能够完全在浏览器中做到这一点。

我刚刚写了一个名为jsPDF的库,它使用Javascript单独生成PDF。 它还很年轻,我很快就会添加function和错误修复。 还有一些不支持数据URI的浏览器的解决方法。 它是根据自由的MIT许可证授权的。

在我开始写作之前,我遇到了这个问题,并认为我会回来,让你知道:)

用Javascript生成PDF

另一个值得一提的JavaScript库是pdfmake

  • pdfmake操场
  • pdfmake在github上

浏览器支持看起来不像jsPDF那样强大,似乎也没有形状的选项,但是格式化文本的选项比jsPDF当前可用的选项更先进。

我维护pdfKit ,这也使pdfmake(这里已经提到)。 它可以在Node和浏览器中工作,并且支持其他库不支持的一些东西:

  • embedded子集字体,支持Unicode。
  • 大量先进的文本布局的东西(列,分页,完整的Unicode分行,基本的富文本等)。
  • 处理更多字体的东西进行高级版式(OpenType / AAT连字,上下文replace等)。 即将推出:如果您有兴趣,请参阅fontkit分支。
  • 更多的graphics资料:渐变等
  • 使用像browserify和stream的现代工具构build。 可在浏览器和节点中使用。

查看http://pdfkit.org/获取完整的教程,了解PDFKit可以做什么。; 对于可以生成什么types​​的文档的例子,可以使用PDFKit本身从一些Markdown文件中生成 PDF文档: http ://pdfkit.org/docs/guide.pdf。

您也可以在浏览器中交互式地尝试它: http : //pdfkit.org/demo/browser.html 。

另一个有趣的项目是texlive.js 。

它允许您在浏览器中将(La)TeX编译为PDF。

您可以使用这个免费的服务,添加一个链接,从任何url(例如http://www.phys.org )创buildpdf:

http://freehtmltopdf.com/?convert=http%3A%2F%2Fwww.phys.org&size=US_Letter&orientation=portrait&framesize=800&language=en

即使您可以用JavaScript生成内存中的PDF,您仍然会遇到如何将该数据传输给用户的问题。 JavaScript很难向用户推送一个文件。

要获得文件给用户,你需要做一个服务器提交,以使浏览器调出保存对话框。

这就是说,生成PDF文件真的不难。 只要阅读规格。