Creating PDF documents with PHP in 10 steps

本文介绍如何使用PDFlib库在PHP环境中创建PDF文档。从安装配置到实际应用,包括设置文档属性、页面尺寸、字体及文本等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Step 1 - Install the PDFlib extension

PDFlib is not included with the default PHP 5.3 distribution, so you will have to install it. Download the PHP version of the PHPlib library from here .

The Windows build of PHP 5 comes in many different varieties. I'll assume that you are using the VC9 non-thread safe build, and that you have installed PHP to the default location.

Extract the libpdf_php.dll file from the PDFlib-7.0.4p6-MSWin32-php\bind\php5\php-530-nozts_VS9\ directory in the PHPlib zip file to C:\Program Files\PHP\ext .

Then add the following two lines to the PHP.ini file located in C:\Program Files\PHP :

[PHP_PDF]

extension=libpdf_php.dll

<!-- AD_PLACEHOLDER_4-->

Step 2 - Create the PDF document

Open up a new try block, create a new PDFlib instance, and then start a new PDF document by calling begin_document .

try {

$pdf=new PDFlib();

if(!$pdf->begin_document("",""))

{

throw new PDFlibException("Error creating PDF document. ".$pdf->get_errmsg());

}

<!-- AD_PLACEHOLDER_5-->

Step 3 - Set the PDF properties

The set_info function allows you set some optional document properties. Here we define the author and title of the PDF document.

$pdf->set_info("Author","Matthew Casperson");

$pdf->set_info("Title","Create a PDF document with PHP");

<!-- AD_PLACEHOLDER_6--> PHP PDF Screenshot<!-- AD_PLACEHOLDER_7-->

Step 4 - Create a new page

The begin_page_ext function is called to start a new page in the PDF document. Here we have specified the page to have dimensions of 595 x 842 points, making it an A4 page.

$pdf->begin_page_ext(595,842,"");

Other common page sizes (in points) are:

a4 595 x 842

a5 421 x 595

a6 297 x 421

letter 612 x 792

legal 612 x 1008

ledger 1224 x 792

11x17 792 x 1224

<!-- AD_PLACEHOLDER_8-->

Step 5 - Prepare a font

To print any text to the PDF document we first need to prepare the font that will be used. The load_font function takes a locally installed font and prepares it for use with PDFlib. The setfont function specifies that we will be using this font when writing text.

$font=$pdf->load_font("Helvetica-Bold","winansi","");

$pdf->setfont($font,24.0);

<!-- AD_PLACEHOLDER_9-->

Step 6 - Write some text

Using the set_text_pos and show functions we can write some text to the PDF document at the specified location.

$pdf->set_text_pos(50,800);

$pdf->show("Hello World");

<!-- AD_PLACEHOLDER_10-->

Step 7 - End the page

The end_page_ext function ends the page that we started in step 4.

$pdf->end_page_ext("");

<!-- AD_PLACEHOLDER_11-->

Step 8 - End the document

The end_document function ends the PDF document we started in step 2.

$pdf->end_document("");

<!-- AD_PLACEHOLDER_12-->

Step 9 - Send the PDF document

Typically a PHP script is used to send a HTML document. In this case we need to override this default behaviour to tell the recieving browser that it is about to recieve a PDF document. The following code creates the HTTP headers required to identify the data being sent as a PDF document, which will cause the browser to open up Adobe Reader (or the default PDF application) when the data is transmitted.

$buffer=$pdf->get_buffer();

$len=strlen($buffer);

header("Content-type: application/pdf");

header("Content-Length: $len");

header("Content-Disposition: inline; filename=example.pdf");

echo $buffer;

<!-- AD_PLACEHOLDER_13-->

Step 10 - Deal with any errors

The try block is closed, and a catch block is created. If there were any errors creating the PDF document, the user is notified.

}

catch (PDFlibException $e)

{

echo 'Error Number:'.$e->get_errnum()."n";

echo 'Error Message:'.$e->get_errmsg();

}

<!-- AD_PLACEHOLDER_14-->

Conclusion

PDFlib makes creating PDF documents a breeze. You could extend this example to allow users to download pre-filled PDF documents, or to create PDF versions of a web page for easy printing.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值