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 相关文章推荐
解决MySQL中文输出变成问号的问题
Jun 05 PHP
php adodb操作mysql数据库
Mar 19 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
php 中self,this的区别和操作方法实例分析
Nov 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
php 远程图片保存到本地的函数类
2008/12/08 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
为你总结一些php系统类函数
2015/10/21 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python实现购物车功能的方法分析
2017/11/10 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
python3.4中清屏的处理方法
2020/07/06 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
外联部演讲稿
2014/05/24 职场文书
高三语文复习计划
2015/01/19 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Python提取PDF指定内容并生成新文件
2021/06/09 Python
一级电子管军用接收机测评
2022/04/05 无线电