【php100译稿】pdf全称portable document format,译为可移植文档格式,是adobe公司推出的便携文档格式。pdf具有与操作系统无关的特性,这一性能使它成为在internet上进行电子文档发行和数字化信息传播的理想文档格式。今天我们来讨论如何使用php创建pdf文档,以及使用php修改pdf。
要想在PHP中使用PDF文档,我们需要用到TCPDF包,一个PHP用来读取PDF的类。
PHP创建PDF文档
你可以从下面给出的链接下载TCPDF包。
TCPDF - PHP class for PDF:http://sourceforge.net/projects/tcpdf/files/
立即学习“PHP免费学习笔记(深入)”;
这是一个免费且易用的插件包,下面我们给出一些示例来演示如何使用TCPDF包。
示例一:使用PHP生成一个简单的PDF文档
<OL class=dp-c><LI class=alt><SPAN><SPAN><?php </SPAN></SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=keyword>require_once</SPAN><SPAN>(</SPAN><SPAN class=string>'../config/lang/eng.php'</SPAN><SPAN>); </SPAN><LI><SPAN class=keyword>require_once</SPAN><SPAN>(</SPAN><SPAN class=string>'../tcpdf.php'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// create new PDF document </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN> = </SPAN><SPAN class=keyword>new</SPAN><SPAN> TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, </SPAN><SPAN class=string>'UTF-8'</SPAN><SPAN>, false); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// set document information </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetCreator(PDF_CREATOR); </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetAuthor(</SPAN><SPAN class=string>'Nicola Asuni'</SPAN><SPAN>); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetTitle(</SPAN><SPAN class=string>'TCPDF Example 002'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetSubject(</SPAN><SPAN class=string>'TCPDF Tutorial'</SPAN><SPAN>); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetKeywords(</SPAN><SPAN class=string>'TCPDF, PDF, example, test, guide'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// remove default header/footer </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->setPrintHeader(false); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->setPrintFooter(false); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// set default monospaced font </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>//set margins </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//set auto page breaks </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>//set image scale factor </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->setImageScale(PDF_IMAGE_SCALE_RATIO); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//set some language-dependent strings </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->setLanguageArray(</SPAN><SPAN class=vars>$l</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// --------------------------------------------------------- </SPAN><SPAN> </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// set font </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetFont(</SPAN><SPAN class=string>'times'</SPAN><SPAN>, </SPAN><SPAN class=string>'BI'</SPAN><SPAN>, 20); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// add a page </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->AddPage(); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// print a line using Cell() </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->Cell(0, 10, </SPAN><SPAN class=string>'Example 002'</SPAN><SPAN>, 1, 1, </SPAN><SPAN class=string>'C'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// --------------------------------------------------------- </SPAN><SPAN> </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//Close and output PDF document </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->Output(</SPAN><SPAN class=string>'example_002.pdf'</SPAN><SPAN>, </SPAN><SPAN class=string>'I'</SPAN><SPAN>); </SPAN><LI><SPAN>?> </SPAN></LI></OL>
使用PHP修改PDF文档
下面我们讨论如何使用PHP修改PDF文档。假设我们需要将一张图片通过PHP程序加入到PDF中,示例代码如下:
示例二:使用PHP在PDF中增加一张图片
<OL class=dp-c><LI class=alt><SPAN><SPAN><?php </SPAN></SPAN><LI><SPAN class=keyword>require_once</SPAN><SPAN>(</SPAN><SPAN class=string>'../config/lang/eng.php'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN class=keyword>require_once</SPAN><SPAN>(</SPAN><SPAN class=string>'../tcpdf.php'</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// create new PDF document </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN> = </SPAN><SPAN class=keyword>new</SPAN><SPAN> TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, </SPAN><SPAN class=string>'UTF-8'</SPAN><SPAN>, false); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// set document information </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetCreator(PDF_CREATOR); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetAuthor(</SPAN><SPAN class=string>'Nicola Asuni'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetTitle(</SPAN><SPAN class=string>'TCPDF Example 009'</SPAN><SPAN>); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetSubject(</SPAN><SPAN class=string>'TCPDF Tutorial'</SPAN><SPAN>); </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetKeywords(</SPAN><SPAN class=string>'TCPDF, PDF, example, test, guide'</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// set default header data </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// set header and footer fonts </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->setHeaderFont(Array(PDF_FONT_NAME_MAIN, </SPAN><SPAN class=string>''</SPAN><SPAN>, PDF_FONT_SIZE_MAIN)); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->setFooterFont(Array(PDF_FONT_NAME_DATA, </SPAN><SPAN class=string>''</SPAN><SPAN>, PDF_FONT_SIZE_DATA)); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// set default monospaced font </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>//set margins </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetHeaderMargin(PDF_MARGIN_HEADER); </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->SetFooterMargin(PDF_MARGIN_FOOTER); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//set auto page breaks </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>//set image scale factor </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->setImageScale(PDF_IMAGE_SCALE_RATIO); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//set some language-dependent strings </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->setLanguageArray(</SPAN><SPAN class=vars>$l</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// --------------------------------------------------------- </SPAN><SPAN> </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// add a page </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->AddPage(); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// set JPEG quality </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->setJPEGQuality(75); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// Image example </SPAN><SPAN> </SPAN><LI><SPAN class=vars>$pdf</SPAN><SPAN>->Image(</SPAN><SPAN class=string>'../images/image_demo.jpg'</SPAN><SPAN>, 50, 50, 100, 150, </SPAN><SPAN class=string>''</SPAN><SPAN>, </SPAN><SPAN class=string>'http://www.tcpdf.org'</SPAN><SPAN>, </SPAN><SPAN class=string>''</SPAN><SPAN>, true, 150); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// --------------------------------------------------------- </SPAN><SPAN> </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>//Close and output PDF document </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=vars>$pdf</SPAN><SPAN>->Output(</SPAN><SPAN class=string>'example_009.pdf'</SPAN><SPAN>, </SPAN><SPAN class=string>'I'</SPAN><SPAN>); </SPAN><LI><SPAN>?> </SPAN></LI></OL>
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_examples
同时,你也可以使用TCPDF的基础属性进行PDF文档的管理。如果你想自己开发一个PHP的PDF文档类,可以参考PHP文档中关于PDF的一些函数介绍:http://www.php.net/manual/en/ref.pdf.php
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号