【问题标题】:Center image doc.addImage jspdf中心图片 doc.addImage jspdf
【发布时间】:2020-05-04 21:53:28
【问题描述】:

我正在使用html2canvas 截取我的页面并使用 jspdf 创建图像的 pdf。现在,我的图片在 pdf 文档中是左对齐的,我希望它居中,我该如何实现呢?

function pdfmaker() {

    var element = $("#timesheet");

    document.getElementById("message").style.display = "block";
    document.getElementById("logo").style.display = "block";
    var firstName = "<?php echo $fname?>";
    var lastName = "<?php echo $lname ?>";
    var startDate = "<?php echo $startDate?>";
    var endDate = "<?php echo $endDate ?>";

    html2canvas(element, {
        useCORS: true,
        onrendered: function(canvas) {
            var imgData = canvas.toDataURL("image/png");


            var imgWidth = 297; //297
            var pageHeight = 297; //297  
            var imgHeight = canvas.height * imgWidth / canvas.width;
            var heightLeft = imgHeight;

            // var doc = new jsPDF('l', 'mm',[1350, 1350]);
            var doc = new jsPDF('l', 'mm', [420, 297]); //420,297
            var position = 5; //0

            margins = {

                top: 20,
                bottom: 10,
                left: 45,
                width: 522
            };


            doc.addImage(imgData, 'PNG', 5, position, imgWidth, imgHeight);
            heightLeft -= pageHeight;

            while (heightLeft >= 5) {
                position = heightLeft - imgHeight;
                doc.addPage();
                doc.addImage(imgData, 'PNG', 5, position, imgWidth, imgHeight);
                heightLeft -= pageHeight;
            }

            doc.save(firstName + '_' + lastName + '_Summary_report_' + startDate + '_' + endDate + ".pdf");
        }
    });

    document.getElementById("message").style.display = "none";
    document.getElementById("logo").style.display = "none";

}

【问题讨论】:

  • 您找到解决方案了吗?
  • 嗨,是的。很久以前做过。谢谢。
  • 解决方案是什么?
  • 也许下次再发布解决方案

标签: jspdf html2canvas


【解决方案1】:

需要在addImage()方法里面定义,使用坐标参数,见:http://raw.githack.com/MrRio/jsPDF/master/docs/module-addImage.html

这是您可以做到的唯一方法。为此,我建议你使用下面的方法doc.internal.pageSize.getWidth();来计算关于图像宽度的超出值,它将居中。

【讨论】:

  • 谢谢。几年前我就这样做了,解决方案根本不是我的首要任务。
猜你喜欢
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 2020-05-10
  • 2020-07-12
相关资源
最近更新 更多