从大于单页的动态创建的表 (div) 创建多页 PDF

Posted

技术标签:

【中文标题】从大于单页的动态创建的表 (div) 创建多页 PDF【英文标题】:Create a multi page PDF from a dynamically created table (div) that is bigger than a single page 【发布时间】:2015-05-24 10:29:14 【问题描述】:

我正在使用 phpmysql 将表动态创建到包含 div 中,然后使用jsPDF 打印它。在表格超过一页之前,一切都很好。然后我得到的只是第一页。我已经花费了数周、数小时的阅读、尝试和测试,但无法让它打印超过第一页。

这是我所拥有的:

<!-- jsPDF Scripts -->
<script src="//mrrio.github.io/jsPDF/dist/jspdf.debug.js"></script>
<script src="//html2canvas.hertzen.com/build/html2canvas.js"></script>

$(document).ready(function() 

        $("#pdfDiv").click(function() 

            var pdf = new jsPDF('p','pt','letter');


            pdf.addHTML($('#rentalListCan').first(), function() 
                pdf.save("rentals.pdf");
            );
        );
    );

我尝试过直接打印页面,但格式不成立。

我已经尝试使用 @pagepage-break-inside: auto 的 css,但它不会创建分页符。感谢您的帮助。

【问题讨论】:

【参考方案1】:

为了解决您的问题,我知道有两种方法 -

    为要拆分的页面提供选项

    选项 = 分页:真 ;

    然后——

    pdf.addHTML($('#someDiv'), marginX,  marginY, options, function() 
        pdf.save("doc.pdf");
    );
    

请注意,这可能会严重拆分您的表格(尝试一下,您会看到)- 您可以做的一件事是在将页面打印为 pdf 之前在拆分的行之间添加空格。 发生这种情况是因为 fromHTML() 将表格转换为画布,然后根据 pdf 的页面大小拆分画布。

    使用这样的插件 - https://github.com/Prashanth-Nelli/jsPdfTablePlugin

但是这里还不支持自定义表格的样式。但是您可以自定义字体和颜色。如果您的表格足够简单,那么它是一个很棒且易于使用的插件。

希望这会有所帮助!

【讨论】:

感谢您的回答。选项 1 有效。你是对的......桌子在它碰到的地方被分开,但肯定是可行的! 不客气!我第一次接受***!耶!

以上是关于从大于单页的动态创建的表 (div) 创建多页 PDF的主要内容,如果未能解决你的问题,请参考以下文章

PDF多页不在android中创建[关闭]

在word中,怎样取消多页的分页符?单页可以选中分页符,再按删除键,要是有几百页呢?

java 实现 tif图片(多页的)转换成jpg

如何使用 MERN 堆栈构建动态单页 Web 应用程序?

vue单页应用前进刷新后退不刷新方案探讨

30.多页应用VS单页应用