php使用PdfParser搭配tcpdf解析pdf文件
2018-01-12 09:36
2081 查看
前几天客户提出一个需求,就是在前台页面搜索文章时,若搜索词在文章附件的pdf文件中有出现的话就要将该文章作为搜索结果。我的思路是后台发布文章时循环检测每一个附件的格式,若附件格式为pdf的话就将里面的文字读取出来 追加到一个$string变量里,然后将$string的作为一个file_text字段的信息保存到数据库后面做搜索的时候使用。
我参考的一个回答地址是:https://baijiahao.baidu.com/s?id=1572245039857772&wfr=spider&for=pc
如果你不想那么麻烦想快速使用的话你可以联系我qq:867956984 注明cdsn pdf解析我给你发我整理好的类库你放到ThinkPHP下面的library然后写个方法调用就好了(第一次 在这里写文章,不知道怎么上传文件给你们下载,如果你会的话可以私聊教我一下)
$parser = new \Smalot\PdfParser\Parser();
// 调用解析方法,参数为pdf文件路径,返回结果为Document类对象
$document = $parser->parseFile($path);
// 获取所有的页
$pages = $document->getPages();
// // 逐页提取文本
$text = '';
foreach($pages as $page){
$text.= $page->getText();
}
echo $text;
结果如下图,已经把pdf文件里面的文字读取出来了(扫描件合成的pdf因为好像都是图片所以是读不出来内容的,编辑一个doc文件然后输出为pdf文件这样的就可以将文字读取出来),之后要这么处理就看你自己的需求啦~~~~
当然,你想自己折腾一下的话就继续往下看
ok,现在我们就使用PdfParser搭配tcpdf来读取pdf文件里面的内容。
pdfparser 下载地址 :http://www.pdfparser.org/
下载好pdfparser
后将src里面的Smalot文件夹复制出来(后面下载好的tcpdf文件夹也放到该目录下)
TCPDF
类库下载地址:https://tcpdf.org/
文件目录如图示:
然后将Smalot这个文件夹放到ThinkPHP下面的library
若你用的是tp3.2.3的话还要将pdfparser 里面的类名改成testCotroller.class.php这种格式(3.2.3官方建议这种格式),tcpdf里面的include文件夹里面的类也改。如果使用的是tp5的话就不用
然后将TCPDF文件夹下的include文件夹改名为includes(不知道是不是与引入文件的include关键字冲突,或者改为你喜欢的名字也行),对应include下类的命名空间也改下路径。
890b
然后将TCPDF 下的TcpdfParser类下的
require_once(dirname(__FILE__).'/include/tcpdf_filters.class.php');
改成use Smalot\TCPDF\includes\tcpdf_filters as TCPDF_FILTERS;
原因好像是使用require_once引入filters这个类的之后TcpdfParser这个类里面就有了两个命名空间,tp规定一个类里面只能有一个命名空间。
整完了这些就可以像前面那样自己写方法去调用啦。
第一次跑不通的话就自己给点耐心打断点慢慢调试。。。。。。。
转载请注明出处哟~~~~~
我参考的一个回答地址是:https://baijiahao.baidu.com/s?id=1572245039857772&wfr=spider&for=pc
如果你不想那么麻烦想快速使用的话你可以联系我qq:867956984 注明cdsn pdf解析我给你发我整理好的类库你放到ThinkPHP下面的library然后写个方法调用就好了(第一次 在这里写文章,不知道怎么上传文件给你们下载,如果你会的话可以私聊教我一下)
$parser = new \Smalot\PdfParser\Parser();
// 调用解析方法,参数为pdf文件路径,返回结果为Document类对象
$document = $parser->parseFile($path);
// 获取所有的页
$pages = $document->getPages();
// // 逐页提取文本
$text = '';
foreach($pages as $page){
$text.= $page->getText();
}
echo $text;
结果如下图,已经把pdf文件里面的文字读取出来了(扫描件合成的pdf因为好像都是图片所以是读不出来内容的,编辑一个doc文件然后输出为pdf文件这样的就可以将文字读取出来),之后要这么处理就看你自己的需求啦~~~~
当然,你想自己折腾一下的话就继续往下看
ok,现在我们就使用PdfParser搭配tcpdf来读取pdf文件里面的内容。
pdfparser 下载地址 :http://www.pdfparser.org/
下载好pdfparser
后将src里面的Smalot文件夹复制出来(后面下载好的tcpdf文件夹也放到该目录下)
TCPDF
类库下载地址:https://tcpdf.org/
文件目录如图示:
然后将Smalot这个文件夹放到ThinkPHP下面的library
若你用的是tp3.2.3的话还要将pdfparser 里面的类名改成testCotroller.class.php这种格式(3.2.3官方建议这种格式),tcpdf里面的include文件夹里面的类也改。如果使用的是tp5的话就不用
然后将TCPDF文件夹下的include文件夹改名为includes(不知道是不是与引入文件的include关键字冲突,或者改为你喜欢的名字也行),对应include下类的命名空间也改下路径。
890b
然后将TCPDF 下的TcpdfParser类下的
require_once(dirname(__FILE__).'/include/tcpdf_filters.class.php');
改成use Smalot\TCPDF\includes\tcpdf_filters as TCPDF_FILTERS;
原因好像是使用require_once引入filters这个类的之后TcpdfParser这个类里面就有了两个命名空间,tp规定一个类里面只能有一个命名空间。
整完了这些就可以像前面那样自己写方法去调用啦。
第一次跑不通的话就自己给点耐心打断点慢慢调试。。。。。。。
转载请注明出处哟~~~~~
相关文章推荐
- PHP通过PDFParser解析PDF文件
- ThinkPHP5/PHP 使用TCPDF 生成PDF文件
- php使用TCPDF生成PDF文件教程
- Using GLib's GKeyFile Parser (使用Glib解析配置文件)
- 使用PHP强制下载PDF文件(代码家园)
- fpdf 在php中生成pdf文件时如何使用自定义字库.
- 在PHP和IOS中使用openssl加密、解密pdf文件
- Using GLib's GKeyFile Parser (使用Glib解析配置文件)
- 使用PHP DOM-XML创建和解析XML文件
- PHP中使用TCPDF生成PDF文档实例
- 使用XmlPullParser解析xml文件
- PHP 使用TCPDF插件生成pdf以及pdf的中文处理
- Android 中使用XmlPullParser解析网络XML文件
- 使用PHP DOM-XML创建和解析XML文件
- Python配置文件解析模块ConfigParser使用实例
- 使用命令行解析php文件
- 使用PHP强制下载PDF文件示例
- 使用ISAPI配置IIS 6.0 解析PHP文件
- PHP中使用TCPDF生成PDF文档实例
- Using GLib's GKeyFile Parser (使用GLib解析配置文件)