使用php将html div或page url转换为pdf

时间:2012-12-11 08:08:59

标签: php pdf-generation dompdf

我有这样的HTML代码:

<div id="invoice"> 
  <div id="invoice-header"> <img alt="Mainlogo_large" class="logo screen" src="http://colosus.com/invoice/images/freeagent_logo.png"> 
    <!-- hCard microformat --> 
    <div class="vcard" id="company-address"> 
      <div class="fn org"><strong>KIOSBAN.COM</strong></div> 
      <div class="adr"> 
        <div class="street-address">Gedung Atlantica Lt.4<br>
          Jl. Kuningan Barat No. 7, Mampang<br> 
        </div> 
        <!-- street-address --> 
        <div class="locality">Indonesia</div> 
        <div id="company-postcode"><span class="region">Jakarta Selatan</span> <span class="postal-code">12710</span></div> 
      </div> 
      <!-- adr --> 
      <div class="email">fajar@kiosban.com</div> 
    <div id="sales-tax-reg-number">Fajar tampan</div> 
    </div> 
    <!-- company-address vcard --> 
  </div> 
  <!-- #invoice-header --> 
  <div id="invoice-info"> 
    <h2>Invoice <strong>INV001</strong></h2> 
    <h3>21 February 2008</h3> 
    <p id="payment-terms">Payment Terms: 30 days</p> 
    <p id="payment-due">Payment due by 21 March 2008</p> 
    <p id="payment-total">£2643.75</p>
  </div> 
  <!-- #invoice-info --> 
  <div class="vcard" id="client-details"> 
    <div class="fn">John Doe</div> 
    <div class="org">Client Company</div> 
    <div class="adr"> 
      <div class="street-address"> Client Street Address<br> 
        Street Address 2<br> 
        Street Address 3<br> 
      </div> 
      <!-- street-address --> 
      <div class="locality">LOCALITY</div> 
      <div id="client-postcode"><span class="region">Region</span> <span class="postal-code">MV2 8SX</span></div> 
      <div id="your-tax-number">SALES TAX: 193528491</div>
    </div> 
    <!-- adr --> 
  </div> 
  <!-- #client-details vcard --> 
  <table id="invoice-amount"> 
    <thead> 
      <tr id="header_row"> 
        <th class="quantity_th">Quantity</th> 
        <th class="left details_th">Details</th> 
        <th class="unitprice_th">Unit Price (£)</th> 
        <th class="salestax_th">VAT</th> 
        <th class="subtotal_th">Net Subtotal (£)</th> 
      </tr> 
    </thead> 
    <tfoot> 
      <tr id="discount_tr"> 
        <td colspan="2">&nbsp;</td> 
        <td colspan="2" class="item_r">10% Discount</td> 
        <td class="item_r">£250.00</td> 
      </tr> 
      <tr id="net_total_tr"> 
        <td colspan="2">&nbsp;</td> 
        <td colspan="2" class="item_r">Net Total</td> 
        <td class="item_r">2250.00</td> 
      </tr> 
      <tr id="vat_tr"> 
        <td colspan="2">&nbsp;</td> 
        <td colspan="2" class="item_r">VAT</td> 
        <td class="item_r">393.75</td> 
      </tr> 
      <tr id="total_tr"> 
        <td colspan="2">&nbsp;</td> 
        <td colspan="2" class="total" id="total_currency"><span class="currency">GBP </span> Total</td> 
        <td class="total">£2643.75</td> 
      </tr> 
    </tfoot> 
    <tbody> 
      <tr class="item odd"> 
        <td class="item_l">1 Day</td> 
        <td class="item_l">Details of project activity to be billed </td> 
        <td class="item_r">500.00</td> 
        <td class="item_r">17.5%</td> 
        <td class="item_r">500.00</td> 
      </tr> 
      <tr class="item"> 
        <td class="item_l">2 Days</td> 
        <td class="item_l">Other Details of project activity to be billed </td> 
        <td class="item_r">1000.00</td> 
        <td class="item_r">17.5%</td> 
        <td class="item_r">1000.00</td> 
      </tr> 
      <tr class="item odd"> 
        <td class="item_l">2 Days</td> 
        <td class="item_l">More d etails of project activity to be billed </td> 
        <td class="item_r">1500.00</td> 
        <td class="item_r">17.5%</td> 
        <td class="item_r">1000.00</td> 
      </tr> 
    </tbody> 
  </table> 
  <!-- invoice-amount --> 
  <div id="invoice-other"> 
    <h2>Other Information</h2> 
    <div id="company-reg-number"><strong>Company Registration Number:</strong> 9273109</div>  
    <div id="contract-number"><strong>Contract/PO:</strong> PO 87227643</div> 
  </div> 
  <!-- invoice-other --> 
  <div id="payment-details"> 
    <h2>Payment Details</h2> 
    <div id="bank_name">Bank Name</div> 
    <div id="sort-code"><strong>Bank/Sort Code:</strong> 32-75-97</div> 
    <div id="account-number"><strong>Account Number:</strong> 28270761</div> 
    <div id="iban"><strong>IBAN:</strong> 973547</div> 
    <div id="bic"><strong>BIC:</strong> 220197</div> 
    <div id="payment-reference"><strong>Payment Reference:</strong> INV001</div> 
  </div> 
  <!-- payment-details --> 
  <div id="comments">Payment should be made by bank transfer or cheque made payable to John Smith.</div> 
  <!-- comments --> 
</div>

我的问题是:如何将<div id='invoice'>bla bla bla</div>内的HTML代码元素或可能只是该网页(ex: localhost/invoice/index.php)的指定网址转换为可下载的pdf

我一直在搜索许多pdf类库,但我找不到解决方案。

任何人都可以给我一个解决方案,想法或可能的方法吗?

5 个答案:

答案 0 :(得分:2)

您可以使用此服务http://pdfmyurl.com/为网址下载PDF,例如以这种格式使用PDF格式 - http://pdfmyurl.com/?url=http://facebook.com

答案 1 :(得分:1)

我建议使用Zend_Pdf,可以给它一个用作PDF模板的页面,你可以做各种各样的PDF。

答案 2 :(得分:0)

尝试TCPDF http://www.tcpdf.org/。它是用于生成pdfs的php类。阅读http://www.tcpdf.org/examples/example_006.phps

答案 3 :(得分:0)

试试mPDF它是一款优秀且易于使用的工具。您可以查看此快速入门教程smaizys.com

答案 4 :(得分:0)

我建议使用DOMPDF。

[https://github.com/dompdf/dompdf][1]

表格存在很大问题。我考虑了我的大型嵌套表并且它有所帮助(在它消耗高达128M的内存然后死亡之前 - 这就是我对php.ini内存的限制)但是它会使表格完全混乱并且看起来不会得到图像。这些表只是基本的东西,有一些边框样式可以在不同的点添加一些线条;