将 Meteor 模板转换为 PDF 文件
Transform Meteor template into PDF file
我想将 Meteor 模板转换为 PDF 文件。我发现 this package using this library 可以将 HTML 转换为 PDF。
问题是......我不明白如何获得我的模板的 HTML 。例如,我有一个测试模板(在 Jade 中):
template(name="test")
h1 Title 1
p Hello, world!
还有这些函数(根据教程):
var specialElementHandlers = {
'#bypassme': function(element, renderer)
{
return true;
}
};
Template.autotest_verdict_content.events({
"click #generate-pdf": function ()
{
var doc = new jsPDF('p', 'in', 'letter');
var source = $("#verdict-content").get(0); // I tried this (from a rendered template)
var source = Template.test; // And this (the template I want to transform)
doc.fromHTML(source, 0.5, 0.5,
{
'width': 7.5,
'elementHandlers': specialElementHandlers
});
doc.output('dataurl');
}
});
我只创建了一个包含 "undefined" 字符串的 PDF 文件。我想我误解了 Template 的工作原理...有人可以给我解释一下吗?
为什么你不能这样做(如包文档中所述):
Template.autotest_verdict_content.events({
"click #generate-pdf": function (){
Blaze.saveAsPDF(Template.test, {
filename: "test.pdf", // optional, default is "document.pdf"
x: 0, // optional, left starting position on resulting PDF, default is 4 units
y: 0, // optional, top starting position on resulting PDF, default is 4 units
unit: "in", // optional, unit for coordinates, one of "pt", "mm" (default), "cm", or "in"
format: "letter" // optional, see Page Formats, default is "a4",
elementHandlers: specialElementHandlers
});
}});
我想将 Meteor 模板转换为 PDF 文件。我发现 this package using this library 可以将 HTML 转换为 PDF。 问题是......我不明白如何获得我的模板的 HTML 。例如,我有一个测试模板(在 Jade 中):
template(name="test")
h1 Title 1
p Hello, world!
还有这些函数(根据教程):
var specialElementHandlers = {
'#bypassme': function(element, renderer)
{
return true;
}
};
Template.autotest_verdict_content.events({
"click #generate-pdf": function ()
{
var doc = new jsPDF('p', 'in', 'letter');
var source = $("#verdict-content").get(0); // I tried this (from a rendered template)
var source = Template.test; // And this (the template I want to transform)
doc.fromHTML(source, 0.5, 0.5,
{
'width': 7.5,
'elementHandlers': specialElementHandlers
});
doc.output('dataurl');
}
});
我只创建了一个包含 "undefined" 字符串的 PDF 文件。我想我误解了 Template 的工作原理...有人可以给我解释一下吗?
为什么你不能这样做(如包文档中所述):
Template.autotest_verdict_content.events({
"click #generate-pdf": function (){
Blaze.saveAsPDF(Template.test, {
filename: "test.pdf", // optional, default is "document.pdf"
x: 0, // optional, left starting position on resulting PDF, default is 4 units
y: 0, // optional, top starting position on resulting PDF, default is 4 units
unit: "in", // optional, unit for coordinates, one of "pt", "mm" (default), "cm", or "in"
format: "letter" // optional, see Page Formats, default is "a4",
elementHandlers: specialElementHandlers
});
}});