javascript - 如何使用jspdf在多页pdf中保存图像

标签 javascript jquery pdf html2canvas jspdf

我有一个要保存为 pdf 的表格(列对齐方式不同)。我使用 html2canvas 将表格转换为图像,然后使用 jspdf 将图像保存为 pdf。如果图像的大小小于或等于 pdf 的页面大小,它会很好地工作,但如果图像大小大于页面大小,那么它只保存 pdf 的第一页(只有一部分图像)并休息图像的部分未以 pdf 格式显示/保存。这是我使用的 javascript 代码。

       $("#btnVC_saveGLSummary").click(function () {
        html2canvas($("#tblSaveAsPdf1"), {
        onrendered: function (canvas) {
        var myImage = canvas.toDataURL("image/jpeg");            
        var d = new Date().toISOString().slice(0, 19).replace(/-/g, "");
        filename = 'report_' + d + '.pdf';
        var doc = new jsPDF();
        doc.addImage(myImage, 'JPEG', 12, 10);
        doc.save(filename);
          }
         });
       });

关于如何在 pdf 第二页上获取图像的剩余部分的任何想法。

最佳答案

它适用于 html2canvas 和 jspdf。

var imgData = canvas.toDataURL('image/png');
var imgWidth = 210; 
var pageHeight = 295;  
var imgHeight = canvas.height * imgWidth / canvas.width;
var heightLeft = imgHeight;
var doc = new jsPDF('p', 'mm');
var position = 10; // give some top padding to first page

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

while (heightLeft >= 0) {
  position += heightLeft - imgHeight; // top padding for other pages
  doc.addPage();
  doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
  heightLeft -= pageHeight;
}
doc.save( 'file.pdf');

关于javascript - 如何使用jspdf在多页pdf中保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24069124/

相关文章:

javascript - 存储将传递给 jQuery 插件的 JSON 数据的最佳实践

pdf - 使用 iTextSharp 删除 PDF 中的对象并保存

c# - iText 7 试用许可证

javascript - 如何向 jquery 创建的元素添加数据?

javascript - 在 Javascript 中使用正则表达式提取姓名和电子邮件

javascript - 在 Canvas 上渲染多个对象之前清除 Canvas

jquery - 如何从 TinyMCE 4.x 编辑器实例获取对 FloatPanel 的引用

php - $(Document).ready 不会触发代码,但会在控制台中运行

jQuery UI 可排序表格和单元格在拖动 tr 时缩小

java - 使用 PDBOX 签署大 PDF 文件