怎样在php中使用PDF文档功能

好久不在网上见你,真有点说不出来的感觉,没有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/.

我希望对你有用。

 

时间: 2024-10-26 17:57:00

怎样在php中使用PDF文档功能的相关文章

怎样在php中使用PDF文档功能_php基础

写给Hunte: 好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉. ---------------------------------------------------- 原作者:Perugini Luca (www.phpbuilder.com) 译者:znsoft (http://www.phpease.com) --------------------------------------------

如何在winform中打开pdf文档的超链接?

问题描述 如何在winform中打开pdf文档的超链接? 40C 环境:windows8+vs2010+winform+adobe padf reader pdf文档中有一些超链接,单独打开时,超链接正常访问. 在pdf文档在 winform中打开后,超链接不能正常访问(没有反应) 有无解决方案? 解决方案 没有任何问题,不知道你是怎么写的 将pdf默认打开方式设为adobe padf reader试试 解决方案二: 看来你没有理解我的问题.------超链接是在pdf文档里面,而不是超链接指向

操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox

原文 操作PDF文档功能的相关开源项目探索--iTextSharp 和PDFBox 很久没自己写写心得日志与大家分享了,一方面是自己有点忙,一方面是自己有点懒,没有及时总结.因为实践是经验的来源,总结是提升的基础,所以无论怎样,自己都该反省一下.今天我主要是研究学习了两个PDF文档的相关类,iTextSharp 和PDFBox.我研究出发点是实现PDF文档的检索,需要提取PDF文档中的文字内容,然后通过正则匹配实现搜索. <类似Windows Search的文件搜索系统>中介绍的文件检索方法是

利用php生成PDF文档功能

PHP捆绑PDFLIB库也许是最好的web出版平台了.一对典型的用法: 需求小册子 电子商务发货单 通过这个指南,你可以学会怎样使用php教程4中的PDF扩展来创建PDF文档. 我们也把焦点放在用mysql教程数据来创建PDF文档. 内容摘要 安装PDFLib 3.0.1 和有PDF支持的PHP4.01pl2(译注:你可以安装最新的php4.03pl1) 提取PDF文档 (我假设你有一点配置php的经验) 安装PDFLib和有PDF支持的PHP. 需求: PHP 4.02+ 从 http://p

在Linux中方便浏览PDF文档

无论是互联网还是日常工作,使用PDF格式保存的电子文档和电子图书都十分流行.PDF格式的电子文档不仅可以完全保存原文档的全貌,更以安全性.易用性及普及性而深受广大用户的欢迎.Linux中有许多这样的浏览工具,如Konqueror.GGV.Adobe Acrobat Reader和Mozilla,这些工具的都可以实现浏览PS/PDF文档,并且大多数对中文支持较好,显示效果也不错.下面就介绍如何利用PDF查看工具,在Linux中方便浏览PDF格式的文档. 在Konqueror中浏览PDF文档 熟悉K

Word Web App新增PDF文档阅读功能

微软现在在打造云端服务的进度上可谓不遗余力,本周Word Web App网页版应用刚刚又加入了浏览PDF格式文档的功能.这为那些不愿掏钱购买完整版Office 2013套装的用户提供了更大的便利. 在Office Web Apps网页应用博客的文章中,微软表示这一新特性的加入是专为那些使用SkyDrive.Outlook.com和Office 365的用户准备的."邮件附件中的PDF或是存储于SkyDrive中的PDF文档都可以在浏览器中更为快速方便地查看,而不用管设备类型或者设备中是否安装有P

Word 2013原生支持PDF文档编辑

尽管微软对PDF颇有微词,甚至认为它是文档的坟墓,但是Office 2013却并没 有放弃对PDF文档的兼容,甚至相比之前版本其兼容性更加强大了.Office 2010 可以将文档保存为PDF,但这是单向操作,你不能直接在Office中打开PDF文档进 行编辑,但是在Office 2013中,你能够这么做了! 在Word 2013中,你可 以直接将PDF文档转换为Word并编辑内容.方法也十分简单,首先,在Word 2013 中打开PDF文档: 点 击"开启编辑"(Enable Edi

winform-有没有这样的组件,可以读取pdf文档,并且可以获取pdf文档当前页面的页码

问题描述 有没有这样的组件,可以读取pdf文档,并且可以获取pdf文档当前页面的页码 最近在做一个项目,要求在程序界面中显示pdf文档,并且自动获取该文档的当前页的页码, 我也用Adobe Acrobat PDF Reader 做了,但是没办法获得当前页的页码,在网上搜了好多,都没找到符合我的需求的组件,希望各位大侠指个思路 解决方案 用foxit sdk.http://www.foxitsoftware.cn/products/sdk/activex/ 解决方案二: 在线预览WORD文档,PD

《Adobe Acrobat X中文版经典教程》—第2章2.6节导览PDF文档

2.6 导览PDF文档Adobe Acrobat X中文版经典教程用户可缩放文档.切换到其他页面.同时显示多个页面以及同时查看多个文档,还可拆分文档,以便同时查看文档的不同部分.很多导览工具都可在多个地方找到,用户可根据工作流程选择最合适的方法. 2.6.1 调整缩放比例在本课前面,您使用过放大工具.缩小工具以及预置的缩放比例列表,它们都位于常用工具栏中.您还可使用菜单"视图"中的命令来调整缩放比例. 1.如果关闭了文件Meridien Rev.pdf,将其打开. 2.选择菜单&quo