这插件太危险了!PHP开发+PDFParser自动提取PDF每天躺赚300+的暴利搬运术

举报
极客小俊 发表于 2025/04/08 12:00:03 2025/04/08
【摘要】 【黑客级操作】这个免费插件让WPS彻底失业!PDF转Word秒级解析~

前言

一些朋友肯定注意到PDF文档是不能复制其中的文本或文字的, 因为一般PDF文档都设置了文档不可编辑, 并且有的时候用户也无法复制其中的文本, 当然这是为了考虑到保证文档和信息的安全性!

但是有时候,在一些特殊的情况下,我们如果真的要从PDF文档上吧文字信息内容提取出来,也不是没有办法,方法有很多,今天我就介绍其中一种,使用php来快速提取PDF文字内容

PDF解析器

要使用php来提取PDF文档中的内容,可以使用一些phpPDF专门准备的解析器来实现这个功能

这里我个人推荐一种自己常用的PDF解析器:PDFParser

PDFParser

介绍

PDFParser是一个免费的库, 我们可以在GitHub上找到它的源代码,并且可以通过Composer免费地将其安装到PHP项目中。

这个库提供了一个简单而强大的API解析PDF文件并提取其中的文本内容, 我们也可以使用它来创建自己的PDF文本提取工具,最关键的是无需支付任何费用,也就是免费!

地址 https://github.com/smalot/pdfparser

如图

安装 PDFParser

首先要确定自己的PHP 版本要在7.1+ 然后我们用Composer去安装它

然后我们可以使用cmd命令行窗口手动打开我们的web项目路径 ,执行以下命令

composer require smalot/pdfparser

这是我的项目路径!

如图

这时候,Composer就帮助我们把smalot/pdfparser这个插件安装到我们的web项目下了!

使用PDFParser提取PDF文本内容

我们现在file目录下有两个pdf文件, 一个英文pdf、一个中文pdf

如图

现在的需要就是要把它的内容提取出来,打印到网页上,现在就让我们来试试吧!

创建Parser对象

首先新建一个index.php文件,里面写入以下代码:

//引入autoload.php
include 'vendor/autoload.php';
//创建Parser对象
$parser = new \Smalot\PdfParser\Parser();
//提取PDF文件
$pdf = $parser->parseFile('你自己的PDF文件路径.pdf');

获取PDF基本信息

然后我们就可以利用创建出来的Parser对象来获取PDF中的文本内容了

获取PDF文件的基本信息包括一些创建者,制作人,创建日期,修改日期,作者,标题,页面数量等等

我们只需要执行getDetails()方法就可以获取到了, 会返回一个数组

代码如下

$details = $pdf->getDetails();
echo "<pre>";
print_r($details);
echo "</pre>";

如图

我们可以打开PDF文件对比一下

获取PDF文件内所有文本内容

如果我们要获取PDF中的所有文本内容,我们只需要执行getText()方法即可获取

代码如下

//获取PDF文件所有文本内容
$text = $pdf->getText();
//输出
echo $text;

如图

但是缺点就是密密麻麻的 根本看不清楚!

获取PDF文件中的某一页

上面获取所有的内容,这样不方便观看

我们其实也可以利用创建出来的Parser对象来一页一页的去获取PDF文件中的内容!

方法很简单,使用getPages()方法再结合getText()方法就可以了

代码如下

//获取PDF所有页
$pages = $pdf->getPages();

//格式化输出 获取PDF某一页的所有文本内容
echo "<pre>";
echo $pages[1]->getText();
echo "</pre>";

如图

我们也可以对照一下源文件是不是这样

如图

循环输出PDF文件中的每一页文本内容

一个一个的去修改索引太麻烦了,我们完全可以使用循环把每一页都打印到web上,并且格式化输出

代码如下

//获取所有页
$pages = $pdf->getPages();
//循环所有页
foreach($pages as $key=>$page){
    //格式化
    echo "<pre>";
    echo $pages[$key]->getText();
    echo "</pre>";
    //每一页分隔符
    echo "<hr>";
}

如图

怎么样是不是很简单!

我们来吧PDF文件换成一个中文的试试看效果, 这里我准备了一个test2.pdf的中文PDF文件

代码如下

<?php
//引入autoload.php
include 'vendor/autoload.php';
//创建Parser对象
$parser = new \Smalot\PdfParser\Parser();
//提取PDF文件
$pdf = $parser->parseFile('file/test2.pdf');
//获取所有页
$pages = $pdf->getPages();
//循环所有页
foreach($pages as $key=>$page){
    //格式化
    echo "<pre>";
    echo $pages[$key]->getText();
    echo "</pre>";
    //每一页分隔符
    echo "<hr>";
}
?>

如图

对照一下

如图

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。