用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:
即使您可以用JavaScript生成内存中的PDF,您仍然会遇到如何将该数据传输给用户的问题。 JavaScript很难向用户推送一个文件。
要获得文件给用户,你需要做一个服务器提交,以使浏览器调出保存对话框。
这就是说,生成PDF文件真的不难。 只要阅读规格。