我正在使用HTML模板生成PDF服务器端,该模板可以使用来自客户端和服务器的数据完成。以下代码有效,但是:
1)PDF文件比“保存为PDF格式”时大5倍。在客户端。
2)PDF无法搜索。
我假设这两个问题源于PhantomJS生成栅格与基于矢量的PDF。我应该做些什么(希望我只是错过一个或两个PhantomJS选项......)??
var phantom = require('phantom');
req.body['invoicenumber'] = 15010001;
phantom.create(function(ph){
ph.createPage(function(page) {
page.set('paperSize', { format: 'Letter',orientation: 'portrait', margin: '1cm' });
page.open("html/template.html", function(status) {
page.evaluate(function(data) {
$(function() { populate(data); });
},function() {
var quotenumber
page.render('quotes/'+req.body['invoicenumber']+'.pdf', function(){
ph.exit();
res.send(req.body['invoicenumber']+'.pdf');
});
},req.body);
});
});
})
MINOR UPDATE:增加页边距以使页面不按比例放大会缩小文件大小,但仍然是客户端的2.5倍'另存为PDF' ...
答案 0 :(得分:0)
在html模板中,尝试使用任何这些标头标签(h1,h2 ... h6)来包装您的内容。这些标头标签内的内容将在生成的pdf中呈现为文本。因此它应该是可搜索的。这也会减少pdf文件的大小。不知道为什么div,p,table等标签在pdf中呈现为图像。