概要
通常无法修改和编辑PDF文档格式的内容,但可以通过根据需要提取文本内容来实现。 本文介绍如何使用Java代码从PDF文档中提取文本内容。
本教程使用的第三方控件是Free Spire.PDF for Java (免费版)。 根据需要,可以支持以下三种提取功能:
提取PDF文档中的所有文本内容
提取PDF中指定页面的文本内容
提取PDF指定区域的文本内容
获取和部署Jar包
在执行代码之前,必须将Free Spire.PDF for Java控件的Jar包导入到IDEA中。 有两种导入方式。 其中之一是在官网上下载并解压缩包,然后手动将lib文件夹下的Spire.Pdf.jar导入IDEA中。 其次,在IDEA中创建Maven项目,在pom.xml文件中输入以下代码,最后单击" Import Changes "。
com.e-iceblueid
3358 repo.e-ice blue.cn/repository/maven-public/URL
存储库
储存库
e-icebluegroupId
spire.pdf.freeartifactId
3.9.0版本
依存
从属权利
示例代码
示例提取PDF文档中的所有文本内容
输入com.spire.pdf.pdf document;
import com.spire.pdf.pdf pagebase;
import java.io.*;
创建publicclassextractalltext { publicstaticvoidmain (string [ ] args ) pdf文档实例
PdfDocument doc=new PdfDocument (; 加载//pdf文档
doc.load from file (c : users test1 desktop sample.pdf ); 创建StringBuilder实例
stringbuilder sb=new stringbuilder (; pdf页面;页面; 遍历//pdf页面,获取每页的文本并将其添加到StringBuilder对象
for(intI=0; itrue ); } FileWriter writer; 将try//stringbuilder对象的文本写入文本文件
writer=new filewriter (output/extract alltext.txt ); writer.write(sb.tostring ) ); writer.flush (; }catch(ioexceptione ) { e.printStackTrace ); } doc.close (; }
}
提取效果:
示例提取PDF中指定页面的文本内容
import com.spire.pdf.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
publicclassextracttextfromparticularpage { publicstaticvoidmain (string [ ] args ) throws IOException { //加载PDF文档
pdf文档pdf=new pdf文档(; pdf.load from file (c : users test1 desktop sample.pdf ); 创建//.txt文件并保存提取的文本
string result=' output/extracttextfromaparticularpage.txt '; 文件文件=new文件(result; if (! file.exists () { file.delete; } file.createNewFile (); filewriter fw=new filewriter (file,true ); bufferedwriterbw=newbufferedwriter (fw;//获取第1页的文本
PdfPageBase page=pdf.getPages ().get ) ) 0; string text=page.extract text (true; //string text=page.extract text (false );
bw.write(Text; bw.flush (; bw.close (; fw.close (; }
}
提取效果:
示例提取PDF指定区域的文本内容
import com.spire.pdf.*;
import Java.awt.geom.rectangle 2d;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
publicclassextracttextfromspecificarea { publicstaticvoidmain [ ] args ] throwsioexception {///加载PDF文档
pdf文档pdf=new pdf文档(; pdf.load from file (c : users test1 desktop sample.pdf ); 创建//.txt文件并保存提取的文本
文件文件=new文件(output/extracttextfromaspecifiedarea.txt ); if (! file.exists () { file.delete; } file.createNewFile (); filewriter fw=new filewriter (file,true ); bufferedwriterbw=newbufferedwriter (fw;//获取第1页
PdfPageBase page=pdf.getPages ().get ) ) 0; 提取第//1页指定区域的文本
string text=page.extract text (new rectangle 2d.float (80,20,500,110 ); bw.write(Text; bw.flush (; bw.close (; fw.close (; }
}
提取效果:
文章来源: segmentfault.com,作者: Millie_Yellow,版权归原作者所有。 转载的情况下,请联系作者。
原文链接: segment fault.com/a/119000038215489