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 相关文章推荐
xajax写的留言本
Nov 25 PHP
php数组总结篇(一)
Sep 30 PHP
php Undefined index的问题
Jun 01 PHP
php与paypal整合方法
Nov 28 PHP
深入PHP内存相关的功能特性详解
Jun 08 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
php中hashtable实现示例分享
Feb 13 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 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
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
python 安装impala包步骤
2020/03/28 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
电脑饰品店的创业计划书
2014/01/21 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
离婚律师函范本
2015/05/27 职场文书
鸦片战争观后感
2015/06/09 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
人事任命书范本
2015/09/21 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python