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下过滤html代码的函数 提高程序安全性
Mar 02 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
php内存缓存实现方法
Jan 24 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
PHP二维数组去重实例分析
Nov 18 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHP自动识别当前使用移动终端
May 21 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
php生成word并下载代码实例
Mar 15 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
form自动提交实例讲解
2017/07/10 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
js+css实现打字效果
2020/06/24 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python文件选择对话框的操作方法
2019/06/27 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
vue+django实现下载文件的示例
2021/03/24 Vue.js
幼师专业毕业生自荐信
2013/09/29 职场文书
监理员的岗位职责
2013/11/13 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
英文求职信写作小建议
2014/02/16 职场文书
人事部岗位职责范本
2014/03/05 职场文书
保护环境倡议书300字
2014/05/19 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
父亲节感言
2015/08/03 职场文书