投稿说明 bitsCN.com > 编程/数据库 > PHP >
Linux和Windows平台下PHP中PDF支持库的安装及应用案例
标签:PDF
由于PDF文档有许多优势,因此广泛流行。而作为web界面方式中也可以通过使用脚本程序生成PDF文档。功能强大的PHP自然也可以实现。PHP中使用PDF需要安装了PDFlib才可。这里将带你讲述在不同平台中如何安装PDFlib,使您的PHP可以对PDF文档进行操作。
这里只讲述在Linux和Windows中的安装过程,其它平台中的UNIX和Linux中安装相似这里就不再单独叙述,MAC等平台由于使用的较少也不讲述。
一、安装前的准备
1.假设您的机器中已经安装好了Web服务器和PHP,这里的Linux服务器中安装的是Apache,Windows服务器中安装的是IIS。
2.下载所需要的软件:
PDFlib的下载(http://www.PDFlib.com)
Windows版本:pdflib-4.0.2-Windows.zip(http://www.pdflib.com/pdflib/download/pdflib-4.0.2-Windows.zip)
Linux版本源码:pdflib-4.0.2.tar.gz(http://www.pdflib.com/pdflib/download/pdflib-4.0.2.tar.gz)
#Linux版本已编译:pdflib-4.0.2-Linux.tar.gz(http://www.pdflib.com/pdflib/download/pdflib-4.0.2-Linux.tar.gz)
PHP的下载(http://www.php.net)
Windows完全版本:PHP 4.1.1 zip package(http://www.php.net/do_download.php?download_file=php-4.1.1-Win32.zip)
Linux版本源码:php-4.1.2.tar.gz(http://www.php.net/do_download.php?download_file=php-4.1.2.tar.gz)
二、Linux平台下的安装
将PDFlib文件和PHP文件下载,保存到/usr/local/src/这个目录中。(当前目录为/usr/local/src)
1.PDFlib的安装
过程:解压文件,配置,编译,安装
$ tar xvfz pdflib-*.tar.gz
$ cd pdflib-*
$ ./configure --with-share
$ make
$ make install
这样就将PDFlib安装到了,系统的"/usr/lib"这个目录中。在执行./configure时可以有的参数可以通过./configure --help查看。默认安装目录为"/usr/lib",默认安装中PHP的支持是打开的,因此不需要加参数"--with-php"
2.PHP的安装
因为我们假设您的系统中已经安装好apache+php,因此使用DSOs模式来安装PHP。
过程:重新配置PHP,编译,安装。建议在进行安装PHP的时候先停止Apache(apachectl stop),但这个步骤不是一定需要的。
$ cd ..
$ tar xvfz php-*.tar.gz
$ cd php-*
$ ./configure --with-apxs=/usr/local/httpd/bin/apxs --enable-gd-native-ttf --enable-gd-imgstrttf --with-tiff-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-pdflib=/usr/lib --enable-mysql
(注:其中的apache的路径为"/usr/local/httpd",如果您的不是,则填写您的apache的目录;如果你之前安装的pdflib安装到了别的目录,则将"/usr/lib"改为您安装的pdflib的目录;如果您还需要添加其它的PHP选项,直接添加在后面即可)
$ make
$ make install
这样就安装了PHP,且同时打开了pdflib。下面进行测试是否安装成功。
3.测试
★如果之前在安装PHP的时候停止了Apache,则需要先启动Apache(apachectl start);
★通过查看phpinfo是否安装成功,例如在DocumentRoot中的文件phpinfo.php。
phpinfo.php文件中的内容为:
phpinfo();
?>
在IE浏览器中查看链接:http://localhost/phpinfo.php
如果在结果页面中包含有以下内容则表明安装成功:
pdf
PDF Support enabled
PDFlib GmbH Version 4.0.2
Revision $Revision: 1.94.2.1 $
★复制PDFlib自带的测试文件(pdfclock.php)到你的DocumentRoot目录下的测试目录,例如:"/www/pdftest/"。
cp /usr/local/src/pdflib-*/bind/php/pdfclock.php /www/pdftest/.
在IE浏览器中查看链接:http://localhost/pdftest/pdfclock.php
如果执行成功,则恭喜您你的PHP已经可以支持pdf了。
注:您的系统中如安装有Acrobat Reader 4.0以上的版本,则看到IE会以插件的形式打开pdfclock.php生成的pdf文档,如果没有安装,则IE会提示下载这个pdf文档。
三、Windows平台下的安装
1.安装
注意由于PHP有两个版本,一个是简版只包含了mysql等默认扩展的支持,这里需要您下载完全版的,包含了全部的模块的文件。
下载Windows版本的PDFlib,将pdflib-4.0.2-Windows.zip解压到某个目录中,在目录"pdflib-4.0.2-Windows\bind\php"中有一些以PHP版本命名的目录,查看您的PHP版本,然后进入相应的目录,后将php_pdf.dll文件copy到你的php程序目录中的extensions目录(例如windows\system32)或者你不知道在哪个目录,直接搜索php_pdf.dll这个文件,查找到后,将上面解压目录中的php_pdf.dll文件复制到这里覆盖,如果提示文件存在,则选择覆盖。
2.修改php.ini文件
打开php.ini文件,找到这行:";extension=php_pdf.dll",将前面的分号去掉,然后保存。重新启动你的Web服务器(不是必须的)。
3.测试
★查看phpinfo.php文件
在IE浏览器中查看链接:http://localhost/phpinfo.php
如果在结果页面中包含有以下内容则表明安装成功:
pdf
PDF Support enabled
PDFlib GmbH Version 4.0.2
Revision $Revision: 1.94.2.1 $
★将目录"pdflib-4.0.2-Windows\bind\php"中的pdfclock.php文件复制到你的web根目录中或其某个自目录中,(例如D:\web\pdftest),然后在IE浏览器中查看,链接:http://localhost/pdftest/pdfclock.php
如果执行成功,则恭喜您你的PHP已经可以支持pdf了。
四、安装中的问题和注意事项
1.PDFlib需要 JPEG库 和 TIFF库 的支持;
2.在浏览器中测试时,如果页面中出现乱码,则很有可能是由于测试文件中有错误,不一定是系统安装的问题;
3.在Windows中有可能会出现提示找不到php_pdf.dll这个文件,是由于您将php_pdf.dll文件没有copy到extensions目录中,这个目录的位置是在php.ini中设置的,可以使用相对路径。其次或者是没有将解压后的php_pdf.dll文件覆盖原PHP自带的php_pdf.dll这个文件;
4.建议PDFlib和PHP等尽量使用最新的版本;
五、结束语
PDF从他诞生起就有着先天的优势,以及当今广泛的使用使PDF非常流行的出版物发行。而PHP中使用PDF所用到的库用的最多的就是PDFlib这个库。当然还有一个也可以使PHP操作PDF的库:ClibPDF(http://www.fastio.com/),这个和PDFlib非常相似,包括在PHP中使用的函数都很相似。但唯一遗憾的是,这两个库都需要purchase a license(购买版权)。否则会在您生成的PDF文档的每个页面中有他们标示的底字。这里就不再ClibPDF这个库的安装,因为他们的安装相似。
在Web中应用PDF,您可以立即让您的网站发布标准出版物的网站。
附录:
如果您不希望每个页面中都包含www.pdflib.com这样的底纹字,则在编译之前,打开这个文件pdflib/pdflib.rc,修改第47行中的:
VALUE "Comments", "www.pdflib.com\0"
改为:
VALUE "Comments", " \0"
然后再配置,编译......。
推荐阅读
-
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
-
本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ...
[详细]
-
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
-
本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ...
[详细]
-
本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ...
[详细]
-
本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ...
[详细]
-
在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ...
[详细]
-
本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ...
[详细]
-
本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ...
[详细]
-
本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ...
[详细]
-
本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ...
[详细]
-
本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ...
[详细]
-
本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ...
[详细]
-
Tags | 热门标签
RankList | 热门文章
-
1开启 windows10上的mysql的远程连接
-
22018.3.17
-
3[分享]用于Asp.Net的敏感内容评审控件
-
4NETBpm的安装
-
5typescript 中的接口和类有什么区别
-
6vb.net打印报表,vb 打印
-
7mysql 数据库连接池小_一个Demo小例子让你了解数据库连接池实现的4种方式
-
8UPDATE能走索引还会锁全表吗
-
9小程序同一页面不同按钮转发不同样式
-
10石子合并——区间dp
-
11NSD cisco高级路由与交换技术2014.8.12
-
12iOS隐藏Navigation:
-
13铸造sqlite准备定制模型
-
14Kernel: XFS kernelbase.dll
-
15基于SSL的mysql服务器的主从架构实现
由于PDF文档有许多优势,因此广泛流行。而作为web界面方式中也可以通过使用脚本程序生成PDF文档。功能强大的PHP自然也可以实现。PHP中使用PDF需要安装了PDFlib才可。这里将带你讲述在不同平台中如何安装PDFlib,使您的PHP可以对PDF文档进行操作。
这里只讲述在Linux和Windows中的安装过程,其它平台中的UNIX和Linux中安装相似这里就不再单独叙述,MAC等平台由于使用的较少也不讲述。
一、安装前的准备
1.假设您的机器中已经安装好了Web服务器和PHP,这里的Linux服务器中安装的是Apache,Windows服务器中安装的是IIS。
2.下载所需要的软件:
PDFlib的下载(http://www.PDFlib.com)
Windows版本:pdflib-4.0.2-Windows.zip(http://www.pdflib.com/pdflib/download/pdflib-4.0.2-Windows.zip)
Linux版本源码:pdflib-4.0.2.tar.gz(http://www.pdflib.com/pdflib/download/pdflib-4.0.2.tar.gz)
#Linux版本已编译:pdflib-4.0.2-Linux.tar.gz(http://www.pdflib.com/pdflib/download/pdflib-4.0.2-Linux.tar.gz)
PHP的下载(http://www.php.net)
Windows完全版本:PHP 4.1.1 zip package(http://www.php.net/do_download.php?download_file=php-4.1.1-Win32.zip)
Linux版本源码:php-4.1.2.tar.gz(http://www.php.net/do_download.php?download_file=php-4.1.2.tar.gz)
二、Linux平台下的安装
将PDFlib文件和PHP文件下载,保存到/usr/local/src/这个目录中。(当前目录为/usr/local/src)
1.PDFlib的安装
过程:解压文件,配置,编译,安装
$ tar xvfz pdflib-*.tar.gz
$ cd pdflib-*
$ ./configure --with-share
$ make
$ make install
这样就将PDFlib安装到了,系统的"/usr/lib"这个目录中。在执行./configure时可以有的参数可以通过./configure --help查看。默认安装目录为"/usr/lib",默认安装中PHP的支持是打开的,因此不需要加参数"--with-php"
2.PHP的安装
因为我们假设您的系统中已经安装好apache+php,因此使用DSOs模式来安装PHP。
过程:重新配置PHP,编译,安装。建议在进行安装PHP的时候先停止Apache(apachectl stop),但这个步骤不是一定需要的。
$ cd ..
$ tar xvfz php-*.tar.gz
$ cd php-*
$ ./configure --with-apxs=/usr/local/httpd/bin/apxs --enable-gd-native-ttf --enable-gd-imgstrttf --with-tiff-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-pdflib=/usr/lib --enable-mysql
(注:其中的apache的路径为"/usr/local/httpd",如果您的不是,则填写您的apache的目录;如果你之前安装的pdflib安装到了别的目录,则将"/usr/lib"改为您安装的pdflib的目录;如果您还需要添加其它的PHP选项,直接添加在后面即可)
$ make
$ make install
这样就安装了PHP,且同时打开了pdflib。下面进行测试是否安装成功。
3.测试
★如果之前在安装PHP的时候停止了Apache,则需要先启动Apache(apachectl start);
★通过查看phpinfo是否安装成功,例如在DocumentRoot中的文件phpinfo.php。
phpinfo.php文件中的内容为:
phpinfo();
?>
在IE浏览器中查看链接:http://localhost/phpinfo.php
如果在结果页面中包含有以下内容则表明安装成功:
PDF Support enabled
PDFlib GmbH Version 4.0.2
Revision $Revision: 1.94.2.1 $
★复制PDFlib自带的测试文件(pdfclock.php)到你的DocumentRoot目录下的测试目录,例如:"/www/pdftest/"。
cp /usr/local/src/pdflib-*/bind/php/pdfclock.php /www/pdftest/.
在IE浏览器中查看链接:http://localhost/pdftest/pdfclock.php
如果执行成功,则恭喜您你的PHP已经可以支持pdf了。
注:您的系统中如安装有Acrobat Reader 4.0以上的版本,则看到IE会以插件的形式打开pdfclock.php生成的pdf文档,如果没有安装,则IE会提示下载这个pdf文档。
三、Windows平台下的安装
1.安装
注意由于PHP有两个版本,一个是简版只包含了mysql等默认扩展的支持,这里需要您下载完全版的,包含了全部的模块的文件。
下载Windows版本的PDFlib,将pdflib-4.0.2-Windows.zip解压到某个目录中,在目录"pdflib-4.0.2-Windows\bind\php"中有一些以PHP版本命名的目录,查看您的PHP版本,然后进入相应的目录,后将php_pdf.dll文件copy到你的php程序目录中的extensions目录(例如windows\system32)或者你不知道在哪个目录,直接搜索php_pdf.dll这个文件,查找到后,将上面解压目录中的php_pdf.dll文件复制到这里覆盖,如果提示文件存在,则选择覆盖。
2.修改php.ini文件
打开php.ini文件,找到这行:";extension=php_pdf.dll",将前面的分号去掉,然后保存。重新启动你的Web服务器(不是必须的)。
3.测试
★查看phpinfo.php文件
在IE浏览器中查看链接:http://localhost/phpinfo.php
如果在结果页面中包含有以下内容则表明安装成功:
PDF Support enabled
PDFlib GmbH Version 4.0.2
Revision $Revision: 1.94.2.1 $
★将目录"pdflib-4.0.2-Windows\bind\php"中的pdfclock.php文件复制到你的web根目录中或其某个自目录中,(例如D:\web\pdftest),然后在IE浏览器中查看,链接:http://localhost/pdftest/pdfclock.php
如果执行成功,则恭喜您你的PHP已经可以支持pdf了。
四、安装中的问题和注意事项
1.PDFlib需要 JPEG库 和 TIFF库 的支持;
2.在浏览器中测试时,如果页面中出现乱码,则很有可能是由于测试文件中有错误,不一定是系统安装的问题;
3.在Windows中有可能会出现提示找不到php_pdf.dll这个文件,是由于您将php_pdf.dll文件没有copy到extensions目录中,这个目录的位置是在php.ini中设置的,可以使用相对路径。其次或者是没有将解压后的php_pdf.dll文件覆盖原PHP自带的php_pdf.dll这个文件;
4.建议PDFlib和PHP等尽量使用最新的版本;
五、结束语
PDF从他诞生起就有着先天的优势,以及当今广泛的使用使PDF非常流行的出版物发行。而PHP中使用PDF所用到的库用的最多的就是PDFlib这个库。当然还有一个也可以使PHP操作PDF的库:ClibPDF(http://www.fastio.com/),这个和PDFlib非常相似,包括在PHP中使用的函数都很相似。但唯一遗憾的是,这两个库都需要purchase a license(购买版权)。否则会在您生成的PDF文档的每个页面中有他们标示的底字。这里就不再ClibPDF这个库的安装,因为他们的安装相似。
在Web中应用PDF,您可以立即让您的网站发布标准出版物的网站。
附录:
如果您不希望每个页面中都包含www.pdflib.com这样的底纹字,则在编译之前,打开这个文件pdflib/pdflib.rc,修改第47行中的:
VALUE "Comments", "www.pdflib.com\0"
改为:
VALUE "Comments", " \0"
然后再配置,编译......。
-
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]Tags | 热门标签RankList | 热门文章
- 1开启 windows10上的mysql的远程连接
- 22018.3.17
- 3[分享]用于Asp.Net的敏感内容评审控件
- 4NETBpm的安装
- 5typescript 中的接口和类有什么区别
- 6vb.net打印报表,vb 打印
- 7mysql 数据库连接池小_一个Demo小例子让你了解数据库连接池实现的4种方式
- 8UPDATE能走索引还会锁全表吗
- 9小程序同一页面不同按钮转发不同样式
- 10石子合并——区间dp
- 11NSD cisco高级路由与交换技术2014.8.12
- 12iOS隐藏Navigation:
- 13铸造sqlite准备定制模型
- 14Kernel: XFS kernelbase.dll
- 15基于SSL的mysql服务器的主从架构实现