jsPDF - 减小文件大小

问题描述 投票:0回答:2

我正在使用jsPDF从画布创建PDF文件。问题是,创建的文件太大了。

我曾经将画布中的数据传输到PNG,然后将PNG数据粘贴到PDF中。如果我以这种方式创建文件,它有4.0MB

我发现了这个问题:How to reduce the file size created by JSPDF?

我根据那里的答案重写了我的代码。所以现在我使用的是JPEG而不是PNG:

var imgData = canvas.toDataURL({
    format: 'jpeg',
    quality: 0.2
});

var doc = new jsPDF('p', 'mm', "A4");
doc.addImage(imgData, 'JPEG', 10, 10, 190, 190);
doc.save('mandala.pdf');

但文件仍然是4.0MB,我为'imgData'设置的质量并不重要。

有没有办法减小尺寸?或4.0 MB是我能得到的最小?

javascript html canvas jspdf
2个回答
2
投票

https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL

我试过了

canvas.toDataURL( 'image/jpeg', 1.0 );

效果很好,尺寸从2.5Mb降至111kb。


1
投票

这对我来说有用,将尺寸从13.5 MB减小到180 kb,质量稍有不妥。

function genPDF() {

  html2canvas(document.querySelector(".page"), {scale: "2"}).then(canvas => {

    this.imgFile = canvas.toDataURL("image/jpeg", 0.3);
    var doc = new jsPDF('p', 'mm', 'a4', true);
    doc.addImage(this.imgFile, "JPEG", 5, 0, 210, 297, undefined,'FAST');
    doc.save('Test.pdf');

  });

}
© www.soinside.com 2019 - 2024. All rights reserved.