【问题标题】:How to reduce html2canvas export file size如何减小 html2canvas 导出文件的大小
【发布时间】:2018-11-30 15:15:22
【问题描述】:

我正在使用 html2canvers 库创建发票并下载为 PDF(A4 大小的 PDF)。下载的文件总是很大(7MB - 13MB)。有没有办法减小文件大小并保持 PDF 的质量。

 public downloadPDF(order_id: string): void {            
        html2canvas(this.invoicepdf.nativeElement).then(function (canvas) {
            var wid: number
            var hgt: number
            var img = canvas.toDataURL("image/png", wid = canvas.width, hgt = canvas.height);
            var hratio = hgt / wid
            var height = 210 * hratio
            var pdf = new jsPDF("p", "mm", "a4");
            var imgData = canvas.toDataURL('image/png', 1.0);
            pdf.addImage(imgData, 'PNG', 0, 0, 210, height);
            pdf.save(order_id + '_Invoice.pdf');           
        });            
    }

【问题讨论】:

    标签: angular html2canvas


    【解决方案1】:

    使用 jsPDF,使用 addImage() 函数,可以压缩生成的 JPEG(使用值“NONE”、“FAST”、“MEDIUM”或“SLOW”)。参考:https://rawgit.com/MrRio/jsPDF/master/docs/module-addImage.html

    因此,通过这样做,您可以减小导出文件的大小:

    // ...
    var img = canvas.toDataURL("image/jpeg", [...])
    // ...
    pdf.addImage(imgData, 'JPEG', 0, 0, 210, height, 'someAlias', 'FAST');
    // ...
    

    【讨论】:

    • 更改压缩参数不会改变文件大小
    猜你喜欢
    • 2021-07-01
    • 2018-01-04
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多