如何使用jspdf提高我的pdf字体和图像的质量?

时间:2019-02-01 08:53:03

标签: javascript jspdf

我正在jspdf插件的帮助下从html文档创建pdf。 它正在生成pdf,但字体看起来模糊且像素化。您能否建议我如何提高pdf的质量和pdf中的字体?这是下面的我的jspdf代码:

function GeneratePDF() {
    var pdf = new jsPDF("p", "pt", "a4");
    var pdfName = 'Reports.pdf';

    var options = {};

    document.getElementById('page-loader').style.display='block'; 

    var $divs = $('.target');
    var numRecursionsNeeded = $divs.length - 1;
    var currentRecursion = 0;


    function recursiveAddHtmlAndSave(currentRecursion, totalRecursions) {
        if (currentRecursion == totalRecursions) {
            document.getElementById('page-loader').style.display='none'; 
            pdf.save(pdfName);
        } else {
            currentRecursion++;
            pdf.addPage();
            pdf.addHTML($('.target')[currentRecursion], 6, 7, options, function () {
                // console.log(currentRecursion);
                recursiveAddHtmlAndSave(currentRecursion, totalRecursions)
            });
        }
    }

    pdf.addHTML($('.target')[currentRecursion], 6, 7, options, function () {
        recursiveAddHtmlAndSave(currentRecursion, numRecursionsNeeded);
    });

}

2 个答案:

答案 0 :(得分:0)

addHTML()生成的PDF质量很差。为了提高质量,请尝试使用以下pdf.internal.scaleFactor = 30;

代码
var pdf = new jsPDF('l', 'in', 'a4');
pdf.internal.scaleFactor = 30;
pdf.addHTML($('#print-area')[0], function() {
    pdf.save(calendarName);
});

答案 1 :(得分:0)

我注意到您正在使用pdf.addHTML(),它是基于jsPDF文档的deprecated。建议您点击此处的链接,并使用pdf.html()(支持向量的API)。

function GeneratePDF() {
    let pdf = new jsPDF('p', 'pt', 'a4');
    pdf.html(document.body, {
        callback: function (pdf) {
            pdf.save('test.pdf');
        }
    });
}