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函数,php爱好者站推荐
Mar 19 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
php封装的page分页类完整实例代码
Feb 01 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命名空间(Namespace)的使用详解
2013/05/04 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
layui表格数据重载
2019/07/27 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
pandas实现选取特定索引的行
2018/04/20 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
String是最基本的数据类型吗?
2013/06/13 面试题
人力资源管理毕业求职信
2014/08/05 职场文书
音乐课外活动总结
2015/05/09 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL