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 相关文章推荐
PHP中在数据库中保存Checkbox数据(2)
Oct 09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php 类自动载入的方法
Jun 03 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
PHP实现时间日期友好显示实现代码
Sep 08 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
Python部署web开发程序的几种方法
2017/05/05 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
班长演讲稿范文
2014/04/24 职场文书
元旦标语大全
2014/10/09 职场文书
八年级英语教学计划
2015/01/23 职场文书
导师鉴定意见
2015/06/05 职场文书
老兵退伍感言
2015/08/03 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server