PHP读取PDF内容配合Xpdf的使用


Posted in PHP onNovember 24, 2012

一.下载
首先,我们先把资料下下来先。
如果不需要转中文的话,只需要下载它就可以:xpdf-bin-linux-3.03.tar,如果需要转中文,那你就还需要它了:xpdf-chinese-simplified.tar

二.安装
现在,下载完毕了吧,我们可以进行安装了。
[root@localhost ~]# mkdir -p /lcf/upan
[root@localhost ~]# mkdir -p /lcf/cdrom
[root@localhost ~]# mkdir -p /lcf/xpdf
[root@localhost ~]# cd /lcf/upan/
[root@localhost upan]# cp xpdf/* ../xpdf/ (下载的文件放入/lcf/xpdf目录)
[root@localhost upan]# cd ../xpdf/
[root@localhost xpdf]# tar -zxvf xpdfbin-linux-3.03.tar.gz
[root@localhost xpdf]# cd xpdfbin-linux-3.03
[root@localhost xpdfbin-linux-3.03]# cat INSTALL
[root@localhost xpdfbin-linux-3.03]# cd bin32/
[root@localhost bin32]# cp ./* /usr/local/bin/
[root@localhost bin32]# cd ../doc/
[root@localhost doc]# mkdir -p /usr/local/man/man1
[root@localhost doc]# mkdir -p /usr/local/man/man5
[root@localhost doc]# cp *.1 /usr/local/man/man1
[root@localhost doc]# cp *.5 /usr/local/man/man5
如果不需要读取中文的话,到这里就可以结束了,如果需要,那我们继续往后
[root@localhost doc]# cp sample-xpdfrc /usr/local/etc/xpdfrc
[root@localhost xpdf]# cd /lcf/xpdf
[root@localhost xpdf]# tar -zxvf xpdf-chinese-simplified.tar.gz
[root@localhost xpdf]# cd xpdf-chinese-simplified
[root@localhost xpdf]# mkdir -p/usr/local/share/xpdf/chinese-simplified
[root@localhost xpdf]# cd xpdf-chinese-simplified/
[root@localhost xpdf-chinese-simplified]# cp Adobe-GB1.cidToUnicode ISO-2022-CN.unicodeMap EUC-CN.unicodeMap GBK.unicodeMap CMAP /usr/local/share/xpdf/chinese-simplified/
把chinese-simplified里面文件add-to-xpdfrc 的内容复制到/usr/local/etc/xpdfrc文件中。记得里面的路径要正确。(注意,这里面的简体中文包包括以下三种格式:ISO-2022-CN,EUC-CN,GBK ,看清楚哦,不支持UTF-8,可以先转为GBK,然后进行转义)

三.功能实现
至此,所有的配置完毕,我们要开始使用它了。
如果是简单的PDF读取,那么直接用下面的语句就OK了。
$content = shell_exec('/usr/local/bin/pdftotext '.$filename.' -');
如果需要转中文,如此这般,加上参数。
$content = shell_exec('/usr/local/bin/pdftotext -layout -enc GBK '.$filename.' -');
当然,加了参数之后依然是不影响英文的转换的,所以,放心使用吧。需要注意的是,这里转出来的是GBK编码的哦,现在网站很多用的是UTF-8,想要不显示乱码的话,需要再次转义一下哦。
$content = mb_convert_encoding($content, 'UTF-8','GBK');
至此,就大功告成了。读取出来的内容,你想如何使用,再写代码处理吧。
最后加一下pdftotext 的参数说明给大家。

主要参数如下:
OPTIONS
Many of the following options can be set with configuration file com-
mands. These are listed in square brackets with the description of the
corresponding command line option.
-f number
Specifies the first page to convert.
-l number
Specifies the last page to convert.
-layout
Maintain (as best as possible) the original physical layout of
the text. The default is to 'undo' physical layout (columns,
hyphenation, etc.) and output the text in reading order.
-fixed number
Assume fixed-pitch (or tabular) text, with the specified charac-
ter width (in points). This forces physical layout mode.
-raw Keep the text in content stream order. This is a hack which
often "undoes" column formatting, etc. Use of raw mode is no
longer recommended.
-htmlmeta
Generate a simple HTML file, including the meta information.
This simply wraps the text in <pre> and </pre> and prepends the
meta headers.
-enc encoding-name

PHP 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php中的mongodb select常用操作代码示例
Sep 06 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php提高网站效率的技巧
Sep 29 PHP
php生成gif动画的方法
Nov 05 PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 #PHP
php实现文件下载更能介绍
Nov 23 #PHP
php 定义404页面的实现代码
Nov 19 #PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 #PHP
apache php模块整合操作指南
Nov 16 #PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 #PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 #PHP
You might like
Session的工作方式
2006/10/09 PHP
php录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
python进程与线程小结实例分析
2018/11/11 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
python计算两个地址之间的距离方法
2018/06/09 Python
python实现自动发送邮件
2018/06/20 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
线程同步的方法
2016/11/23 面试题
师范应届生语文教师求职信
2013/10/29 职场文书
高一物理教学反思
2014/01/24 职场文书
酒店节能减排方案
2014/05/26 职场文书
关于安全的标语
2014/06/10 职场文书
专家推荐信范文
2015/03/26 职场文书
学校捐书活动总结
2015/05/08 职场文书
肖申克救赎观后感
2015/06/02 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python