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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php抓取https的内容的代码
Apr 06 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
May 06 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
jquery replace方法去空格
2017/05/08 jQuery
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python命令行解析模块详解
2018/02/01 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
python实时监控cpu小工具
2018/06/21 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
公司总经理岗位职责
2014/03/15 职场文书
团日活动总结范文
2014/04/25 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
文明寝室标语
2014/06/13 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
圆明园观后感
2015/06/03 职场文书
财务人员入职担保书
2015/09/22 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android