如何将jsPDF用于创建输出的pdf,就像window.print()命令给出的那样“完全”?

我必须创建一个``pdf''元素的pdf文件,我尝试使用jsPDF。但是我得到的输出有很多额外的项目符号,而且编号混乱。但是我在屏幕上看到的是格式正确的'div',通过使用window.print(),我可以完全打印出它。

我唯一的抱怨是,我想要另一种将输出保存为pdf的选项,供无法将打印选项更改为“另存为pdf”的用户使用。

    var pdf = new jsPDF('p', 'pt', 'letter');
    var source = $('#content')[0]; //content has the survey with lot of linked list elements and various formatted text
    //I tried all kind of formatting on 'source' to make it right... but its not possible to keep the form as it is what it looks on screen
    margins = {
        top: 80,
        bottom: 60,
        left: 40,
        width: 522
    };
    pdf.fromHTML(
            source, // 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
            },
    function (dispose) {
        // dispose: object with X, Y of the last line add to the PDF
        //          this allow the insertion of new lines after html
        pdf.save('Disclosure' + '@DateTime.Now' + '.pdf');
    }
    , margins);


那么,有没有一种方法可以将window.print()之后的输出保存为PDF?

最佳答案

试试看:

var pdf = new jsPDF('p', 'pt', 'letter');
var source = $('#content')[0];
var options = { background: '#fff' };

pdf.addHTML(source, options, function()
{
     pdf.save('Disclosure' + '@DateTime.Now' + '.pdf');
});


(如果您要处理的是诸如div之类的单个元素,则需要background选项,因为否则您将获得透明/黑色背景)

另请注意,您需要html2canvas才能正常工作。

关于javascript - 如何将jsPDF用于创建输出的pdf,就像window.print()命令给出的那样“完全”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25828502/

10-11 19:16