jsPDF生成多页的pdf

时间:2017-09-30 17:40:08

标签: javascript html pdf plugins jspdf

我将这些版本用于jspdf:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>

我的页面上有一个大div,例如:

<div id="template_invoice">
<div id="first_head">
    <div id="logo_invoice" class="has-65">
        <img src="" width="280px">
    </div>
    <div id="main_header_info" class="has-35">
        </div>
    </div>
    <div class="clearFix"></div>
    <div id="second_head">
        <div id="lead_address" class="has-65">
            <span id="lead_name"></span><br>
            <span id="lead_street"></span><br>
            <span id="lead_postcode_city"></span><br>
        </div>
         <div id="lead_invoice_info" class="has-35">
            <div class="span_padding_invoice">
            <span class="invoice_main_span">Rechnungs-Nr.</span>
            <span id="lead_rechnungs_nr" class="right-clmn-span"></span>
            <br>
          ...
                </div>
            <div class="span_padding_invoice lead_total_container">
                <span class="invoice_main_span total_bold">Total</span>
                <span id="lead_total" class="right-clmn-span"></span>
                <br>
            </div>
        </div>
    </div>
    <div id="content_invoice">
 <div id="rechnung_div">
            <h1>Rechnung</h1>
            <p>Rechnungs-Nr. <span id="rechnung_nr"></span> / Kunden-Nr. <span id="kunder_nr"></span> </p>
        </div>
        <table id="product_invoice_table" width="100%">
                <thead>
            <tr>
                <th width="55%">Produkt</th>
                <th width="15%">Menge</th>
                <th width="15%">Preis / Einheit</th>
                <th width="15%">Total</th>
            </tr>
            </thead>
<tbody>
</tbody>
        </table>
     </div>
    <div class="clearFix"></div>
    <div id="footer_invoice">
    </div>
</div>

所以我使用以下代码生成pdf文件:

 var doc = new jsPDF('p', 'pt', 'a4');

doc.addHTML($('#template_invoice')[0], function () { var pdf = doc.output('blob'); .... });

一切正常,但如果强度的高度大于页面则没有第二,第三......其他页面。 我尝试过使用pagesplit:true,但它工作错误,没有正确的字体,css而不是2页我得到4页错误的CSS。

我需要任何帮助来解决这个问题,如何为我的div设置多个页面?

非常感谢您的帮助!

现在我用pagesplt标志得到这样的pdf: http://clip2net.com/s/3ObsVZc

1 个答案:

答案 0 :(得分:0)

您应该能够在创建pdf时选择足够接近您想要的页面格式。生成文件时尝试以下行

var pdf = new jsPDF("l", "pt", "letter");