使用 Javascript 从模板生成 PDF

Generate PDF from Template using Javascript

情况如下: 我们有一个网站,生成(大)合同-JSONs,我们现在想使用前端将其导出为 pdf,所以 javascript。 目前,我使用 pdfmake,但我发现很难获得每个合同都保持相同的布局。 我更愿意有某种模板,我可以用 JSON.

中的值填充

目前我能想到的最好的方法是用 LaTex 编写一个 pdf 模板并用一些模板框架填充它,然后用 LaTex 编译器编译它。 但是,我希望您能告诉我一些更简单的事情。 唯一重要的是,一键从 JSON 转到 pdf。

我最终使用了 pdfmake。 首先我理解错了,这就是我无法编辑pdf的原因。 现在我知道,您可以通过使用大量列来很好地布局文档。

我尝试读取一个 .tex 文件并使用 FreeMarker 填充它。 这工作得很好,但是没有在线 LaTeX 编译器,我不得不强迫客户在本地编译我不想要的 .tex 文件。

但是,如果您在本地有 LaTeX 编译器,这应该可以。

我对类似的场景做了一些研究。以下是我入围的三个选项:

  1. HTML-PDF(nodejs模块)
  2. WKTHMLTOPDF
  3. PhantomJS(甚至前两个选项都使用 phantomjs)
  4. jsPDF - 可以在客户端使用

使用此解决方案 运行 一段时间后,我想补充一点,在这种情况下,之后更改文档(例如添加 table)非常困难。 如果我必须再做一次,我可能会尝试将 pdf 的构建块实现为带有占位符的乳胶模板。就像 angular 中的指令一样。 在文档构建过程中,我将逐个模板地检查模板,使用从后端收到的数据生成 Latex-Blocks(如 tables),然后使用 FreeMarker 将生成的数据填充到模板中,然后然后将模板放入一个完整的乳胶文件中,将整个pdf保存在乳胶中。 使用像 texlive 这样的 js-Latex 编译器,我应该能够从这个文件生成 pdf。

所有这些都是理论上的,可能比我所做的工作更多,但我更喜欢这个解决方案,因为它更干净且更易于维护。 从我的错误中吸取教训:-)