【问题标题】:jspdf - specialElementHandlers to alter elementjspdf - specialElementHandlers 来改变元素
【发布时间】:2017-12-05 23:34:00
【问题描述】:

我想从 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”工作完美)。

我非常感谢任何形式的帮助。

【问题讨论】:

    标签: javascript pdf jspdf


    【解决方案1】:

    如果您想在将其添加到 id 之前进行更改,则必须在 specialElementHandler 中返回“false”并更改元素本身。 例如:

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

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多