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 和 MySQL 基础教程(四)
Oct 09 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
Yii隐藏URL中index.php的方法
Jul 12 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
php插入mysql数据返回id的方法
May 31 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
简单的php写入数据库类代码分享
2011/07/26 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
使用flow来规范javascript的变量类型
2019/09/12 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
python通过smpt发送邮件的方法
2015/04/30 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
python实现人脸签到系统
2020/04/13 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Python分类测试代码实例汇总
2020/07/23 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
钱学森电影观后感
2015/06/04 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
学生退学证明
2015/06/23 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技