节点JS,创建PDF模板的想法

时间:2016-02-08 10:36:46

标签: javascript node.js npm

如何在Node.JS中创建PDF文档?是否有更好的解决方案来管理不同类型的PDF创建模板。

我使用PDFKit创建PDF文档,这将是使用Javascript的服务器端。我无法使用HTML来创建PDF。这将是blob的段落和部分,用in。替换标签。

有没有人知道Node.js有任何npm包可以处理带有段落标题的模板。

喜欢的东西 getTemplateByID()返回一个包含部分,标题,段落的模板,然后我用它来替换模板中的相应标签。

1 个答案:

答案 0 :(得分:1)

在我的情况下,我必须从我的数据库(PostgreSQL)中获取我的HTML模板作为流。我请求db获取我的模板,然后创建一个tmp文件。

在我的模板中,我有AngularJS标签,所以我用'ng-node-compile'模块编译了这个带有数据的模板:

var ngCompile        = require('ng-node-compile');
var ngEnvironment    = new ngCompile();
var templateHTML     = getTemplateById(id);

templateHTML         = ngEnvironment.$compile(templateHTML)(datas);

现在我有我编译的模板(你可以设置你的段落等),我将它们转换为PDF,这要归功于PhantomJS模块'phantom-html-to-pdf'

var phantomHTML2PDF = require('phantom-html-to-pdf')(options);
phantomHTML2PDF(convertOptions, function (error, pdf) {
    if(error) console.log(error);
        // Here you have 'pdf.stream.path' which is your tmp PDF file
        callback(pdf);
    });

现在你有了编译和转换的模板(pdf),你可以做任何你想做的事! :)

有用的链接:

我希望这有帮助!