如何减小 html2canvas 导出文件的大小
How to reduce html2canvas export file size
我正在使用 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');
});
}
对于 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');
// ...
我正在使用 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');
});
}
对于 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');
// ...