PHP 创建 PDF 发票

2022-08-30 15:40:27

嗨,有谁知道我如何通过PHP创建格式良好的PDF发票?

理想情况下,我正在寻找带有标题的东西,然后是带有某种表格的产品明细列表。在快速谷歌之后,我会对生成PDF感到满意,但是尝试很好地设置它的样式完全是另一回事。

谢谢


答案 1

我建议创建一个html / css表示你想要的PDF,并使用它来生成PDF。有几十个应用程序来处理转换,这里有一个很好的线程有很多答案:用PHP将HTML + CSS转换为PDF?


答案 2

我使用TCPTF(参见 http://www.tcpdf.org/):它的功能非常强大,设置起来不会太痛苦。我会说,根据您的数据源,您可能会遇到一些问题。在我的情况下,我的数据来自我的会计系统的SOAP接口,并将CodeIgniter用于我的应用程序,我可以这样做:

$address = $extraclient->get_company_address();

// generate the PDF invoice
$this->load->library('pdfinvoice');

// set document information
$this->pdfinvoice->SetSubject("Invoice " . $data_invoice['code_invoice']);

// add a page
$this->pdfinvoice->AddPage();
$this->pdfinvoice->StartPageOffset();

// write the client's details out
$width = $this->pdfinvoice->GetPageWidth()/2;
$margins = $this->pdfinvoice->getMargins();
$this->pdfinvoice->SetFont('times', 'b', $this->pdfinvoice->bigFont );
$this->_row($width, array("From:", "To:"));
$this->pdfinvoice->SetFont('times', 'i', $this->pdfinvoice->smallFont );
$this->_row($width, array("MY NAME", $customer['name_contact']));
$this->_row($width, array($address['phone'], $customer['name_customer']));
$this->_row($width, array($address['street'], $customer['address1_street']));
$this->_row($width, array($address['city']. ", ".$address['state']." ".$address['zipcode'],
                          $customer['address1_city']. ", ".$customer['address1_state']." ".$customer['address1_zip

坦率地说,完整的代码太长而无法在此处插入,但您应该了解这个想法,并且可以获得相当精确的布局控制。


推荐