使用JavaScript生成PDF文件

时间:2009-04-12 19:27:31

标签: javascript pdf pdf-generation

我正在尝试将XML数据转换为网页中的PDF文件,我希望我可以在JavaScript中完全执行此操作。我需要能够绘制文本,图像和简单的形状。我希望能够在浏览器中完全做到这一点。

6 个答案:

答案 0 :(得分:390)

我刚刚编写了一个名为jsPDF的库,它只使用Javascript生成PDF。它还很年轻,我很快就会添加功能和错误修复。还有一些关于不支持数据URI的浏览器的变通方法的想法。它是在自由MIT许可下获得许可的。

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

Generate PDFs in Javascript

示例创建“Hello World”PDF文件。

// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()

doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>

答案 1 :(得分:118)

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

浏览器支持似乎没有jsPDF那么强大,似乎也没有形状选项,但格式化文本的选项比jsPDF中当前可用的选项更高级。

答案 2 :(得分:51)

我维护PDFKit,它也支持pdfmake(这里已经提到过)。它既可以在Node中运行,也可以在浏览器中运行,并且支持其他库不支持的一些东西:

  • 嵌入子集化字体,支持unicode。
  • 许多高级文本布局内容(列,分页,完整的unicode换行,基本富文本等)。
  • 为高级排版(OpenType / AAT连字,上下文替换等)处理更多字体内容。即将推出:如果您有兴趣,请参阅fontkit分支。
  • 更多图形内容:渐变等。
  • 使用浏览器和流等现代工具构建。可在浏览器和节点中使用。

查看http://pdfkit.org/获取完整教程,了解PDFKit可以执行的操作。有关可以生成哪种文档的示例,请使用PDFKit本身从某些Markdown文件中查看文档为PDF generatedhttp://pdfkit.org/docs/guide.pdf

您也可以在浏览器中以交互方式进行试用:http://pdfkit.org/demo/browser.html

答案 3 :(得分:7)

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

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

答案 4 :(得分:2)

您可以通过添加从任何网址创建pdf的链接(例如http://www.phys.org)来使用此免费服务:

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

答案 5 :(得分:-20)

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

要将文件提供给用户,您需要进行服务器提交,以便让浏览器调出保存对话框。

话虽如此,生成PDF确实不太难。请阅读规范。