本文演示瞭如何使用zend_pdf動態生成PDF發票。 關鍵好處包括創建新的PDF或修改現有的PDF,非常適合具有靜態(公司信息,徽標)和動態(客戶,交易詳細信息)數據的發票。 zend_pdf處理字體,顏色和內容添加,儘管文本定位可能需要進行一些調整。 生成的發票可以保存到文件或直接發送到瀏覽器以供下載。 除了基本的PDF創建之外,Zend_pdf還提供圖像包含,字體樣式,鏈接插入和錯誤處理之類的功能。 但是,像表這樣的複雜元素需要手動細胞放置計算。
>>入門:基於模板的方法
> 從頭開始創建PDF是可能的,但是使用預設計的模板(例如,從Word或libreoffice中導出為PDF)更有效。 這種方法最大程度地減少了編碼和發電時間。 該模板包含靜態元素(公司詳細信息,徽標等),而動態數據則以編程方式添加。 以下是一個示例模板(用自己的替換)。>
設置Zend Framework:>
如果您是新手Zend Framework,請從composer require zendframework/zendpdf
加載PDF模板:> zend_pdf使用加載現有的PDF。 結果對象通過數組(例如,
)提供對單個頁面的訪問Zend_Pdf::load("/path/to/invoice-template.pdf");
>字體和顏色:pages
$page = $invoice->pages[0];
自定義truetype字體。 使用。 設置字體和大小 使用
>對象(灰度,RGB,CMYK或HTML符號)指定顏色。 將填充顏色設置為Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);
。 Zend_Pdf_Font::fontWithPath("/path/to/myfont.ttf");
$page->setFont($font, 12);
Zend_Pdf_Color_*
$page->setFillColor($color);
添加文本。坐標($ x,$ y)為點(72分= 1英寸),左下角。 精確定位可能需要實驗。
>示例數據(用數據庫檢索替換):
>$customerName = "Angelina Jolie"; $invoiceId = "DF-00025786423"; $items = array( array("Golden Globe Polish", 1, 25.50, 25.50), array("Trophy Shelf", 2, 180.00, 360.00), array("DIY Tattoo Kit", 1, 149.99, 149.99) ); $subtotal = 535.49; $discount = 10; $amountDue = 481.94;
>文本放置示例(根據需要調整坐標):
>$page->drawText($customerName, 110, 641); $page->drawText($invoiceId, 420, 642); // ... other text additions ...
>渲染髮票:
保存PDF或將其直接發送到瀏覽器以供下載:$invoice->save($pathToFile);
header("Content-Type: application/x-pdf"); header("Content-Disposition: attachment; filename=invoice-". date("Y-m-d-H-i") . ".pdf"); echo $invoice->render();
結論:
以上是phpmaster |使用Zend-PDF生成發票的詳細內容。更多資訊請關注PHP中文網其他相關文章!