jspdf - specialElementHandlers 改变元素
jspdf - specialElementHandlers to alter element
我想从 HTML 生成 PDF,但 PDF 有时包含不同的文本。
所以我尝试使用 "specialElementHandlers" 来改变一些元素,然后再将它们添加到 PDF 中。
htmlToPDF(){
var pdf = new jsPDF('p', 'pt', 'letter');
var source = $('#HTMLtoPDF')[0];
var specialElementHandlers = {
'#bypassme': function(element, renderer) {
return true
},
'#changeme': function (element, renderer) {
return <h2>different text</h2>
}
};
现在,我正在尝试做这样的事情,但它行不通(至少 "changeme" 部分,"bypassme" 完美无缺)。
非常感谢任何帮助。
如果您想在将其添加到 id 之前进行更改,则必须 return "false" 在 specialElementHandler 中更改元素本身。
例如:
'#changeme': function (element, renderer) {
element.innerHTML = "<div>New Text</div>";
return false;
请注意,您之前必须复制 pdf 的元素。否则您也会更改网站本身的元素。
const html = source.outerHTML;
pdf.fromHTML (
html // HTML string or DOM elem ref.
, margins.left // x coord
, margins.top // y coord
, {
'width': margins.width // max width of content on PDF
, 'elementHandlers': specialElementHandlers
},
...
我想从 HTML 生成 PDF,但 PDF 有时包含不同的文本。 所以我尝试使用 "specialElementHandlers" 来改变一些元素,然后再将它们添加到 PDF 中。
htmlToPDF(){
var pdf = new jsPDF('p', 'pt', 'letter');
var source = $('#HTMLtoPDF')[0];
var specialElementHandlers = {
'#bypassme': function(element, renderer) {
return true
},
'#changeme': function (element, renderer) {
return <h2>different text</h2>
}
};
现在,我正在尝试做这样的事情,但它行不通(至少 "changeme" 部分,"bypassme" 完美无缺)。
非常感谢任何帮助。
如果您想在将其添加到 id 之前进行更改,则必须 return "false" 在 specialElementHandler 中更改元素本身。 例如:
'#changeme': function (element, renderer) {
element.innerHTML = "<div>New Text</div>";
return false;
请注意,您之前必须复制 pdf 的元素。否则您也会更改网站本身的元素。
const html = source.outerHTML;
pdf.fromHTML (
html // HTML string or DOM elem ref.
, margins.left // x coord
, margins.top // y coord
, {
'width': margins.width // max width of content on PDF
, 'elementHandlers': specialElementHandlers
},
...