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 相关文章推荐
PHP5+UTF8多文件上传类
Oct 17 PHP
php 文件上传系统手记
Oct 26 PHP
深入apache host的配置详解
Jun 09 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
设定php简写功能的方法
Nov 28 PHP
PHP 8新特性简介
Aug 18 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文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
php中stdClass的用法分析
2015/02/27 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
python opencv之分水岭算法示例
2018/02/24 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
Python Django搭建网站流程图解
2020/06/13 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
初入社会应届生求职信
2013/11/18 职场文书
出国考察邀请函
2014/01/21 职场文书
迟到检讨书大全
2014/01/25 职场文书
白酒市场营销方案
2014/02/25 职场文书
保安公司服务承诺书
2014/05/28 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
干部培训工作总结2015
2015/05/25 职场文书