spire.pdf for java 支持通过 pdfgrid 类和 pdftable 类在 pdf 页面中绘制表格,在“java 创建并格式并 pdf 表格”一文中介绍了如何绘制表格。本篇文章将介绍使用 pdftableextractor 类来提取 pdf 中的表格的方法。
安装 spire.pdf for java
首先,您需要在 java 程序中添加 spire.pdf.jar 文件作为依赖项。您可以从这个链接下载 jar 文件;如果您使用 maven,则可以通过在 pom.xml 文件中添加以下代码导入 jar 文件。
com.e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.pdf
4.12.1
提取 pdf 中的表格
提取表格的主要步骤如下:
- 创建 pdfdocument 类的对象,并通过 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 实例化 stringbuilder 和 pdftableextractor 类的实例。
- 循环遍历 pdf 页面,获取页面中的表格,存入 pdftable[] 数组。
- 遍历所有表格,获取表格行或列,并通过 pdftable.gettext() 方法获取表格中的文本。
- 将获取的文本数据保存为 txt 文件。
- java
import com.spire.pdf.*;
import com.spire.pdf.utilities.pdftable;
import com.spire.pdf.utilities.pdftableextractor;
import java.io.filewriter;
import java.io.ioexception;
public class extracttable {
public static void main(string[] args)throws ioexception {
//实例化pdfdocument类的对象
pdfdocument pdf = new pdfdocument();
//加载pdf文档
pdf.loadfromfile("test.pdf");
//创建stringbuilder类的实例
stringbuilder builder = new stringbuilder();
//创建pdftableextractor类的对象
pdftableextractor extractor = new pdftableextractor(pdf);
//遍历每一页
for (int page = 0; page < pdf.getpages().getcount(); page )
{
//提取页面中的表格存入pdftable[]数组
pdftable[] tablelists = extractor.extracttable(page);
if (tablelists != null && tablelists.length > 0)
{
//遍历表格
for (pdftable table : tablelists)
{
int row = table.getrowcount();//获取表格行
int column = table.getcolumncount();//获取表格列
for (int i = 0; i < row; i )
{
for (int j = 0; j < column; j )
{
//获取表格中的文本内容
string text = table.gettext(i, j);
//将获取的text写入stringbuilder容器
builder.append(text " ");
}
builder.append("\r\n");
}
}
}
}
//保存为txt文档
filewriter filewriter = new filewriter("extractedtable.txt");
filewriter.write(builder.tostring());
filewriter.flush();
filewriter.close();
}
}
表格内容读取结果:
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。 获取有效期 30 天的临时许可证。