前几天客户提出一个需求,就是在前台页面搜索文章时,若搜索词在文章附件的pdf文件中有出现的话就要将该文章作为搜索结果。我的思路是后台发布文章时循环检测每一个附件的格式,若附件格式为pdf的话就将里面的文字读取出来 追加到一个$string变量里,然后将$string的作为一个file_text字段的信息保存到数据库后面做搜索的时候使用。

我参考的一个回答地址是:https://baijiahao.baidu.com/s?id=1572245039857772&wfr=spider&for=pc

$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下类的命名空间也改下路径。

然后将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规定一个类里面只能有一个命名空间。

整完了这些就可以像前面那样自己写方法去调用啦。

第一次跑不通的话就自己给点耐心打断点慢慢调试。。。。。。。

tp5的话经一位老哥测试将smalot放到extend扩展文件夹,里面的类名根据你的框架配置看是否需要加.class,,然后按上面的原理调用就可以了,其他框架应该也是这个理~~

老哥还反映我那个TCPDF文件太大,删除掉一部分之后还是可以运行,下图是阉割之后的tcpdf <狗头~/>

php使用PdfParser搭配tcpdf解析pdf文件相关推荐

  1. python处理pdf实例_python使用pdfminer解析pdf文件的方法示例

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...

  2. python 读取pdf cid_python使用pdfminer解析pdf文件的方法示例

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...

  3. JAVA解析pdf文件

    自己记录一下,方便下次用,判断文件是否为pdf类型,并且解析文件内容 1.需要依赖的包 <dependency><groupId>org.apache.pdfbox</g ...

  4. python解析pdf中文乱码_解析PDF文件以及解决编码问题

    1.解析pdf文件 最近需要将pdf中文本提取出来,于是就了解了一下pdfminer 首先安装:pip3 install pdfminer3k 之后就是用pdfminer解析,不多说,直接上代码,这些 ...

  5. [299]python实现批量解析PDF文件提取内容并写入到Excel中

    摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...

  6. 解析PDF文件以及解决编码问题

    1.解析pdf文件 最近需要将pdf中文本提取出来,于是就了解了一下pdfminer 首先安装:pip3 install pdfminer3k 之后就是用pdfminer解析,不多说,直接上代码,这些 ...

  7. python如何解析PDF文件

    python如何解析PDF文件 python中读取pdf的方法:使用python第三方库pdfminerk3k 1.使用pdfminer库 pdfminer是一个主流的分析pdf的库.如果是pytho ...

  8. TCPDF生成PDF文件方法教程说明

    TCPDF生成PDF文件方法教程说明 TCPDF下载: composer: 在packagist中所搜tcpdf (https://packagist.org/packages/tecnickcom/ ...

  9. Python编程--使用PyPDF解析PDF文件中的元数据

    Python编程–使用PyPDF解析PDF文件中的元数据 元数据 作为一种文件里非常明显可见的对象,元数据可以存在于文档.电子表格.图片.音频和视频文件中.创建这些文件的应用程序可能会把文档的作者.创 ...

最新文章

  1. 用tolower()和toupper()来实现对string进行大小写转换
  2. ajax请求挂起_Ajax请求内部循环挂起浏览器?
  3. mvc 返回一个对象 到视图接收
  4. java中XPATH操作xml,非常便捷
  5. 手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)
  6. Hibernate学习汇总
  7. CentOS系统性能工具 sar 示例!
  8. 递归法:计算m个A,n个B可以组合成多少种排列问题?
  9. C++支持参数个数不确定的函数
  10. Django rest framework(7)----分页
  11. MNIST 数据集下载及图片可视化
  12. 利用FME创建CAD标准图层模板
  13. 大数值金额大写转换(C语言)
  14. power pviot
  15. golang mongodb 聚合(Aggregate) github.com/qiniu/qmgo框架
  16. android学习笔记----ListView和各种适配器简介
  17. 【LC周赛241】1865. 找出和为指定值的下标对
  18. 3个5相乘列乘法算式_15个类型的速算巧算题目,打印出来给孩子练习一下
  19. linux系统移植 基于zynq7000平台
  20. 计算机组成原理MIPS课后答案,《计算机组成原理》课后题答案 清华大学出版 秦磊华 吴非··...

热门文章

  1. 使用canvas生成一个圆形的图片
  2. MATLAB中柱形图的绘制
  3. STM32:外部中断的使用
  4. C语言学习日记(9)——用C语言写一个爱心
  5. subclipse使用详解
  6. 维度建模技术(1)核心概念
  7. 混合高斯模型介绍以及应用
  8. 分布式事务框架lcn入门demo
  9. AO3415-ASEMI低压P沟道MOS管AO3415
  10. 用Python制作简单的小游戏