2017-07-25 21 views
7

我试图在Ubuntu 16.04上使用node-html-pdf(https://github.com/marcbachmann/node-html-pdf)节点模块,并已开始使用给定的businesscard示例。Ubuntu上的node-html-pdf businesscard示例

不幸的是,我无法生成此PDF。

首先,我在本地安装模块。

然后我复制了businesscard.html和image.png到我的项目,并试图在它不改变执行以下代码:

var fs = require('fs'); 
var pdf = require('html-pdf'); 
var html = fs.readFileSync('./test/businesscard.html', 'utf8'); 
var options = { format: 'Letter' }; 

pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) { 
    if (err) return console.log(err); 
    console.log(res); // { filename: '/app/businesscard.pdf' } 
}); 

的结果是2个黑色页面的PDF(OK) ,使用正确的文本,但格式更大,字体不正确,我无法获取图像。

看起来像一些基本的配置,缺少路径或类似的...

任何线索?

回答

1

我的猜测是,如果您使用浏览器打开.html文件,您将拥有相同(或类似)的输出。

可能与图像src的链接被破坏,字体不会被导入。

也许你可以尝试制作自己的基本的HTML,然后将其解析为PDF格式,你应该期望.pdf是类似于.html

+0

这不是问题,浏览器显示它就好。我怀疑这是基本的设置,安装,参数。令人惊讶的是,它是模块自己的基本演示,我怀疑它不起作用(因为它在Github上有1500颗星星)。 – Aleks

+0

我不使用这个模块,而是阅读他们的github,它说它可以与phantom.js一起使用,所以'.pdf'可能是呈现的'.html'的屏幕截图,并且您发布的配置似乎可以,请添加你的问题的''。test/businesscard.html''的代码? –

+0

以下是此示例的HTML代码:https://github.com/marcbachmann/node-html-pdf/blob/master/example/businesscard.html我也试图用直接图像名称替换{{image}},但它没有帮助。正如我所说,字母和大小不好。 – Aleks

1

一个解决方案:尝试insatalling在PDF中列出的字体...