首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用没有jquery的jsPDF ()方法使用.html()方法生成多页PDF

如何使用没有jquery的jsPDF ()方法使用.html()方法生成多页PDF
EN

Stack Overflow用户
提问于 2022-10-13 06:35:11
回答 1查看 114关注 0票数 1

我有一个特定的功能,我必须将所有选项卡导出到PDF中,每个选项卡在单独的页面中。对于选项卡,我使用了react (https://www.npmjs.com/package/react-tabs)。

它有一个名为forceRenderTabPanel的属性。虽然它是真的,但是所有的选项卡都将呈现到DOM中。

我使用jsPDF库将HTML(Tabs)导出为PDF格式。

jspdf有一个名为.HTML()的方法,它将在其参数中使用HTML,我在参数中给出了父div。

如您在本例中所看到的:链接到我的代码框

正如您在导出的PDF中所看到的,只有一个(Active Tab)正在导出,尽管所有3个选项卡都已呈现到Dom中,但我要寻找的是每个选项卡应该在单独的页面中导出。

如何使用jspdf的.HTML()方法或使用外部文件中的CSS的任何其他方法,从HTML生成多页PDF?或者,如何在.html()方法的回调中添加多页--我们可以使用另一个库或方法执行这些任务?任何建议都会很好!

代码语言:javascript
复制
const doc = new jsPDF("p", "pt", "a4");    
doc.html(document.getElementById("Page1"), {
       callback: function (pdf) {
         pdf.addPage(
           [1500, 1500],
           "l"
         );
         pdf.html(document.getElementById("Page2"), {
           callback: function (pdf2) {
             pdf2.addPage(
               [1500, 1500],
               "l"
             );
             pdf2.html(document.getElementById("Page3"), {
               callback: function (pdf3) {
                 pdf3.save("3pageFS.pdf");
               },
               y: 1500,
             });
           },
         });
       },

我试过用这种方法,但我得到了第二和第三空白页,只有第一页是可见的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-08 05:04:01

我发现了一种使用.HTML()方法导出多页PDF的技巧,U可以使用嵌套的回调函数,比如基于页面大小的X和Y坐标。

代码语言:javascript
复制
   const doc = new jsPDF("p", "pt", "a4");   
   doc.html(document.getElementById("Page1"), {
      callback: function (pdf) {
        pdf.addPage("a4", "l");
        pdf.html(document.getElementById("Page2"), {
          callback: function (pdf2) {
            pdf2.addPage("a4", "l");
            pdf2.html(document.getElementById("Page3"), {
              callback: function (pdf3) {
                pdf3.save("multipage.pdf")
              },
              x: 0,
              y: 2 * pageHeight,
            });
          },
          x: 0,
          y: pageHeight,
        });
      },
      x: 0,
      y: 0,
    });

对于如何使这些代码根据页数动态使用for循环有什么建议吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74051377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档