gpt4 book ai didi

javascript - 使用 Javascript 生成高质量 PDF (jspdf+html2canvas)

转载 作者:行者123 更新时间:2023-12-05 05:04:41 25 4
gpt4 key购买 nike

我一直在尝试通过单击页面上的按钮从 HTML 页面转换和生成 PDF,该按钮会使用两个流行的插件自动生成并强制下载该页面的 PDF* JSPDF* HTML2 Canvas 到目前为止一切正常,但生成的 PDF 总是模糊且质量不高导入 js 文件(jquery、html2canvas、jspdf)后。这是我的javascript代码

function CreatePDFfromHTML() {
var HTML_Width = $(".html-content").width();
var HTML_Height = $(".html-content").height();
var top_left_margin = 15;
var PDF_Width = HTML_Width + (top_left_margin * 2);
var PDF_Height = (PDF_Width * 1.5) + (top_left_margin * 2);
var canvas_image_width = HTML_Width;
var canvas_image_height = HTML_Height;

var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1;

html2canvas($(".html-content")[0]).then(function (canvas) {
var imgData = canvas.toDataURL("image/jpeg", 1.0);
var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);
pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height);
for (var i = 1; i <= totalPDFPages; i++) {
pdf.addPage(PDF_Width, PDF_Height);
pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height);
}
pdf.save("invoice_<?php echo $trackingNumber ;?>.pdf");
$(".html-content").hide();
});
}

我如何调整代码使 html2canvas 将页面转换为质量更好的图像(消除模糊并使生成的 PDF 文件更好)

最佳答案

经过几天的搜索,我终于找到了一种通过将 HTML_weight 和 HTMLheight 乘以 3 来提高质量的方法,这里是新代码

function CreatePDFfromHTML() {
var HTML_Width = $(".html-content").width()*3;
var HTML_Height = $(".html-content").height()*3;
var top_left_margin = 15;
var PDF_Width = HTML_Width + (top_left_margin * 2);
var PDF_Height = (PDF_Width * 1.5) + (top_left_margin * 2);
var canvas_image_width = HTML_Width;
var canvas_image_height = HTML_Height;

var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1;

html2canvas($(".html-content")[0]).then(function (canvas) {
var imgData = canvas.toDataURL("image/jpeg", 1.0);
var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);
pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height);
for (var i = 1; i <= totalPDFPages; i++) {
pdf.addPage(PDF_Width, PDF_Height);
pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height);
}
pdf.save("invoice_<?php echo $trackingNumber ;?>.pdf");
$(".html-content").hide();
});
}

关于javascript - 使用 Javascript 生成高质量 PDF (jspdf+html2canvas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60933665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com