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
        },
...