我正在使用名为html-pdf的节点包将HTML转换为PDF。
我可以创建PDF,但是缺少样式部分。
下面是我的代码:
var html = fs.readFileSync('./charts.html', 'utf8');
var options = { format: 'A4'};
pdf.create(html, options).toFile('./charts.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res);
});
我该如何获得样式?
答案 0 :(得分:0)
我不了解html-to-pdf,但我使用了phantom-html-to-pdf 在这里,我使用了Materialise CSS,您可以使用Bootstrap或您想要的任何东西 我认为这种方法也适用于
var conversion = require("phantom-html-to-pdf")();
var fs=require("fs");
var resulthtml = "";
resulthtml += '<html>';
resulthtml += '<head>';
resulthtml += '<script src="bower_components/materialize/dist/js/materialize.js"></script>';
resulthtml += '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css">';
resulthtml += '<link rel="stylesheet" href="bower_components/materialize/dist/css/materialize.min.css" />';
resulthtml += '</head>';
resulthtml += '<body>';
resulthtml += '<div class="row">';
/*
use html body whatever u want
*/
resulthtml += '</div>';
resulthtml += '</body>';
resulthtml += '<html>';
conversion({ html: resulthtml }, function (err, pdf) {
var output = fs.createWriteStream('sample.pdf');
console.log(pdf.logs);
// respond an http request.
pdf.stream.pipe(output);
});
答案 1 :(得分:0)
它对我有用,直接链接到 .css 文件。这是暂时的,但我认为这是一个很好的起点。
css 文件在 /public/css 下
app.use(express.static("public"));
<link href="http://localhost:3000/css/styles.css" rel="stylesheet" type="text/css">
答案 2 :(得分:-2)
我在html-pdf中也有类似的问题。我最终使用了内联样式标签,并且对我有用。