怎样在php中使用PDF文档功能
程序员文章站
2022-05-25 20:33:04
写给hunte: 好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉. -------...
写给hunte:
好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉.
----------------------------------------------------
原作者:perugini luca (www.phpbuilder.com)
译者:znsoft (http://www.phpease.com)
---------------------------------------------------
转载请保留以上信息,否则请不要转载!
php捆绑pdflib库也许是最好的web出版平台了。一对典型的用法:
需求小册子
电子商务发货单
通过这个指南,你可以学会怎样使用php4中的pdf扩展来创建pdf文档。
我们也把焦点放在用mysql数据来创建pdf文档。
内容摘要
安装pdflib 3.0.1 和有pdf支持的php4.01pl2(译注:你可以安装最新的php4.03pl1)
提取pdf文档
(我假设你有一点配置php的经验)
安装pdflib和有pdf支持的php。
需求:
php 4.02+ 从 http://php.net 下载
pdflib 3.0.1 从 http://www.pdflib.com 下载
这是一个怎样让pdflib3.0.1和php4一起工作的小秘方:(老外很幽默的^_^)
直接从http://www.php.net下载 ext/pdf/pdf.c的补丁来支持pdflib v 3.0.1
下载pdflib3.0.1从此处 http://www.pdflib.com
适用的补丁你可以在此找到 http://www.pdflib.com/pdflib/patches.html
配置,make和安装pdflib
#./configure --enabled-shared-pdflib
#make
#make install
你会使得 pdflib 安装在 /usr/local/lib .
配置 php
#./configure --with-apxs=/usr/bin/apxs \
--with-gd --with-pdflib=/usr/local --with-mysql=/usr/local \
--with-config-file-path=/etc/httpd --with-zlib-dir=/usr \
--with-ttf=/usr/local/include \
--with-jpeg-dir=/usr --with-tiff-dir=/usr \
--with-system-regex=yes --enable-debug=no
#make
#make install
更新系统库
插入 /usr/local/lib 进 /etc/ld.so.conf (文件)
#/sbin/ldconfig
测试和验证
现在你需要重启apache
#apachectl restart
拷贝pdfclock.php 到的httpd目录中(就是web目录)...测试....一切正常。
重要信息
要使得phplib和字体一起工作你必须注意pdflib手册中的upr部分。
最简单的用pdflib使用字体的办法是拷贝pdflib tar包中的标准upr描述文件(fonts/pdflib.upr)到你的工作目录。
提取pdf文档
现在我们已经作好了如飞地生成pdf文档的条件!
在这个小例子中我们要生成flystore公司的需求小册子,当然是从目录数据库中提取数据。
准备数据库
我假设你有一点数据库的经验,最小限度,我真的只希望你懂得怎样创建一个数据库并向其中插入表。
创建表 catalogue:
create table catalogue(
id smallint(8) unsigned default '0' not null,
item varchar(100) default '' not null,
description tinytext,
img_data longblob,
imgname varchar(60),
imgsize varchar(60),
imgtype varchar(60),
price smallint(8) unsigned default '0' not null,
primary key (id),
key item (item(20))
);
送出mime头信息
为了让我们的正确地显示出来,我们需要送出正确的头信息到用户的浏览器。
在php中我们可以用header函数实现。下面的代码送出正确的mime类型到浏览器。
header( "content-type: application/pdf" );
header( "content-disposition: attachment; filename=modulo.pdf" );
header( "content-description: php3 generated data" );
重要信息
你必须知道的是在送出头信息前不能输出任何东西。一个常见的错误是在文件的开头存在空格。
从mysql中取数
这儿我们用一个从目录数据中提数据的简单代码片断。
<?php
$link = mysql_connect ("127.0.0.1", "flyadm", "flystore")
or die ("could not connect");
mysql_select_db ("flystore", $link);
$result = mysql_query ("select * from catalogue", $link)
or die ("invalid query");
$data = mysql_fetch_row ($result);
....
....
mysql_close ($link);
?>
生成pdf文件
为了生成pdf文档,我们需要作经过以下步骤:
打开一个pdf流,并使它和一个句柄关联:
$pdf = pdf_open();
(optional) set document information like author, title, subject, etc
(可选的)设置文档信息,如作者,标题,主题,等
开始一个新页(pdf文件可以用不同的版面生成不同的页,比如肖像,前景...):
pdf_begin_page($pdf, 595, 842);
(可选的)设置一个超链接:
pdf_add_outline($pdf, "item ".$data[1]);
选择字体类型, 尺寸 (pdf_set_font($pdf, "helvetica-bold" , 20, winansi);) 表现模式
插入文本在x.y位置:
pdf_show_xy($pdf, "item : " .$data[1], 100, 700);
或插入图片在x.y位置:
pdf_place_image($pdf, $im, 100, 300, 3);
刷新文本缓冲区并关闭pdf流。
pdf coordinate systems
what we need to do to locate a string or picture in some part of the pdf page,
在pdf页的很多地方我们需要定位字符串和图片,转换英制单位到dtp点值.
在pdflib手册的45页写到:
".. .缺省的坐标系统的原点在页面的左下角,用dtp点作为单位:
1 pt = 1 inch /72 = 25.4mm /72 = 0.3528 mm
"
这儿是生成pdf文件的代码片断:
<?php
$pdf = pdf_open();
pdf_set_info_author($pdf, "luca perugini");
pdf_set_info_title($pdf, "brochure for flystore");
pdf_set_info_creator($pdf, "see author");
pdf_set_info_subject($pdf, "flystore");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "item ".$data[1]);
pdf_set_font($pdf, "helvetica-bold" , 20, winansi);
pdf_set_text_rendering($pdf, 0);
pdf_show_xy($pdf, "flystore catalogue 2000",50,780);
pdf_show_xy($pdf, "item : " .$data[1], 100, 700);
pdf_show_xy($pdf, "description : " .$data[2], 100, 620);
$im = pdf_open_jpeg($pdf, "pass4_sml.jpg");
pdf_place_image($pdf, $im, 100, 300, 3);
pdf_close_image ($im);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
?>
在最后,我要提示你这篇文章不是pdf教程,如果你需要更多的pdf文档的信息和用法,你可以访问
http://www.pdfzone.com/ 和 http://www.planetpdf.com/.
我希望对你有用。
好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉.
----------------------------------------------------
原作者:perugini luca (www.phpbuilder.com)
译者:znsoft (http://www.phpease.com)
---------------------------------------------------
转载请保留以上信息,否则请不要转载!
php捆绑pdflib库也许是最好的web出版平台了。一对典型的用法:
需求小册子
电子商务发货单
通过这个指南,你可以学会怎样使用php4中的pdf扩展来创建pdf文档。
我们也把焦点放在用mysql数据来创建pdf文档。
内容摘要
安装pdflib 3.0.1 和有pdf支持的php4.01pl2(译注:你可以安装最新的php4.03pl1)
提取pdf文档
(我假设你有一点配置php的经验)
安装pdflib和有pdf支持的php。
需求:
php 4.02+ 从 http://php.net 下载
pdflib 3.0.1 从 http://www.pdflib.com 下载
这是一个怎样让pdflib3.0.1和php4一起工作的小秘方:(老外很幽默的^_^)
直接从http://www.php.net下载 ext/pdf/pdf.c的补丁来支持pdflib v 3.0.1
下载pdflib3.0.1从此处 http://www.pdflib.com
适用的补丁你可以在此找到 http://www.pdflib.com/pdflib/patches.html
配置,make和安装pdflib
#./configure --enabled-shared-pdflib
#make
#make install
你会使得 pdflib 安装在 /usr/local/lib .
配置 php
#./configure --with-apxs=/usr/bin/apxs \
--with-gd --with-pdflib=/usr/local --with-mysql=/usr/local \
--with-config-file-path=/etc/httpd --with-zlib-dir=/usr \
--with-ttf=/usr/local/include \
--with-jpeg-dir=/usr --with-tiff-dir=/usr \
--with-system-regex=yes --enable-debug=no
#make
#make install
更新系统库
插入 /usr/local/lib 进 /etc/ld.so.conf (文件)
#/sbin/ldconfig
测试和验证
现在你需要重启apache
#apachectl restart
拷贝pdfclock.php 到的httpd目录中(就是web目录)...测试....一切正常。
重要信息
要使得phplib和字体一起工作你必须注意pdflib手册中的upr部分。
最简单的用pdflib使用字体的办法是拷贝pdflib tar包中的标准upr描述文件(fonts/pdflib.upr)到你的工作目录。
提取pdf文档
现在我们已经作好了如飞地生成pdf文档的条件!
在这个小例子中我们要生成flystore公司的需求小册子,当然是从目录数据库中提取数据。
准备数据库
我假设你有一点数据库的经验,最小限度,我真的只希望你懂得怎样创建一个数据库并向其中插入表。
创建表 catalogue:
create table catalogue(
id smallint(8) unsigned default '0' not null,
item varchar(100) default '' not null,
description tinytext,
img_data longblob,
imgname varchar(60),
imgsize varchar(60),
imgtype varchar(60),
price smallint(8) unsigned default '0' not null,
primary key (id),
key item (item(20))
);
送出mime头信息
为了让我们的正确地显示出来,我们需要送出正确的头信息到用户的浏览器。
在php中我们可以用header函数实现。下面的代码送出正确的mime类型到浏览器。
header( "content-type: application/pdf" );
header( "content-disposition: attachment; filename=modulo.pdf" );
header( "content-description: php3 generated data" );
重要信息
你必须知道的是在送出头信息前不能输出任何东西。一个常见的错误是在文件的开头存在空格。
从mysql中取数
这儿我们用一个从目录数据中提数据的简单代码片断。
<?php
$link = mysql_connect ("127.0.0.1", "flyadm", "flystore")
or die ("could not connect");
mysql_select_db ("flystore", $link);
$result = mysql_query ("select * from catalogue", $link)
or die ("invalid query");
$data = mysql_fetch_row ($result);
....
....
mysql_close ($link);
?>
生成pdf文件
为了生成pdf文档,我们需要作经过以下步骤:
打开一个pdf流,并使它和一个句柄关联:
$pdf = pdf_open();
(optional) set document information like author, title, subject, etc
(可选的)设置文档信息,如作者,标题,主题,等
开始一个新页(pdf文件可以用不同的版面生成不同的页,比如肖像,前景...):
pdf_begin_page($pdf, 595, 842);
(可选的)设置一个超链接:
pdf_add_outline($pdf, "item ".$data[1]);
选择字体类型, 尺寸 (pdf_set_font($pdf, "helvetica-bold" , 20, winansi);) 表现模式
插入文本在x.y位置:
pdf_show_xy($pdf, "item : " .$data[1], 100, 700);
或插入图片在x.y位置:
pdf_place_image($pdf, $im, 100, 300, 3);
刷新文本缓冲区并关闭pdf流。
pdf coordinate systems
what we need to do to locate a string or picture in some part of the pdf page,
在pdf页的很多地方我们需要定位字符串和图片,转换英制单位到dtp点值.
在pdflib手册的45页写到:
".. .缺省的坐标系统的原点在页面的左下角,用dtp点作为单位:
1 pt = 1 inch /72 = 25.4mm /72 = 0.3528 mm
"
这儿是生成pdf文件的代码片断:
<?php
$pdf = pdf_open();
pdf_set_info_author($pdf, "luca perugini");
pdf_set_info_title($pdf, "brochure for flystore");
pdf_set_info_creator($pdf, "see author");
pdf_set_info_subject($pdf, "flystore");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "item ".$data[1]);
pdf_set_font($pdf, "helvetica-bold" , 20, winansi);
pdf_set_text_rendering($pdf, 0);
pdf_show_xy($pdf, "flystore catalogue 2000",50,780);
pdf_show_xy($pdf, "item : " .$data[1], 100, 700);
pdf_show_xy($pdf, "description : " .$data[2], 100, 620);
$im = pdf_open_jpeg($pdf, "pass4_sml.jpg");
pdf_place_image($pdf, $im, 100, 300, 3);
pdf_close_image ($im);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
?>
在最后,我要提示你这篇文章不是pdf教程,如果你需要更多的pdf文档的信息和用法,你可以访问
http://www.pdfzone.com/ 和 http://www.planetpdf.com/.
我希望对你有用。
上一篇: 在PHP中执行系统外部命令
推荐阅读
-
在Word2010中使用后台打印文档功能
-
在Word2010中文档中使用“查找”功能
-
怎样在php中使用PDF文档功能
-
在Word2003中使用Word文档批注功能
-
如何在php语言中使用PDF文档功能?_PHP教程
-
请教在apache2.4中 DefaultType功能怎样使用其它设置进行替代
-
怎样在php中使用PDF文档功能_PHP
-
在PHP3中实现SESSION的功能(附、COOKIE函数库的使用:test_cookie.php3_PHP教程
-
在PHP3中实现SESSION的功能(附、COOKIE函数库的使用:test_cookie.php3_PHP教程
-
怎样在php中使用PDF文档功能