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 IPV6正则表达式验证代码
Feb 16 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
php生成略缩图代码
Jul 16 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
Yii2如何批量添加数据
May 17 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP简单计算两个时间差的方法示例
Jun 20 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
微信API接口大全
2015/04/15 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
Ajax基础知识详解
2017/02/17 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
JS如何生成动态列表
2020/09/22 Javascript
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
python中的列表和元组区别分析
2020/12/30 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
给老师的检讨书
2014/02/11 职场文书
《掌声》教学反思
2014/02/23 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
供应链金融服务方案
2014/05/25 职场文书
党员作风建设整改方案
2014/10/27 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
HAM-2000摩机图
2021/04/22 无线电
SpringBoot集成Redis的思路详解
2021/10/16 Redis