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 采集书并合成txt格式的实现代码
Mar 01 PHP
php数字转汉字代码(算法)
Oct 08 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php微信公众平台开发类实例
Apr 01 PHP
php连接mysql数据库
Mar 21 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
php实现 master-worker 守护多进程模式的实例代码
Jul 20 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
Yii框架应用组件用法实例分析
May 15 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
可输入的下拉框
2006/06/19 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python threading模块操作多线程介绍
2015/04/08 Python
Python类的用法实例浅析
2015/05/27 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
团队激励口号
2014/06/06 职场文书
爱护花草树木的标语
2014/06/11 职场文书
幼师辞职信范文
2015/02/27 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
停水通知
2015/04/16 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
小学语文教学反思范文
2016/03/03 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
PHP中strval()函数实例用法
2021/06/07 PHP