您的位置 首页 java

Java 提取PDF文档中的表格信息

在前文中我曾介绍过 。那对于一个已经包含有表格的PDF文档,想要提取其中表格信息进行编辑分析是否可行呢?答案是可以。用到的工具同样是 Spire.PDF for Java 控件,需用到它的最新版4.10.2。

以下是PDF示例文档:

导入Jar包: E-iceblue中文官网 下载Spire.PDF for Java产品包,解压后在lib文件夹下找到Spire.Pdf.jar,然后将其手动导入 IDEA ;如果用 Maven 仓库安装方式,在 pom .xml里键入以下代码即可。

 <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.pdf</artifactId>
        <version>4.10.2</version>
    </dependency>
</dependencies>  

代码示例

Spire.PDF for Java提供了 PdfTableExtractor.extractTable(int pageIndex) 方法来检测和提取PDF文档中的表格信息。以下是具体实现步骤:

  • 创建 PdfDocument 实例
  • 使用 PdfDocument.loadFrom File () 方法加载PDF示例文档
  • 创建 StringBuilder PdfTableExtractor 实例
  • 遍历文档所有页面,然后使用 PdfTableExtractor.extractTable(int pageIndex) 方法提取表格到 PdfTable 数组
  • 遍历表格的所有行和列,然后使用 PdfTable.getText(int rowIndex, int columnIndex) 方法提取数据,最终通过 StringBuilder.append() 方法将数据保存到 StringBuilder 实例
  • 使用 Writer.write() 方法将提取的表格数据写入.txt文档
 import com.spire.pdf.PdfDocument;
import com.spire.pdf.utilities.PdfTable;
import com.spire.pdf.utilities.PdfTableExtractor;
import java.io.FileWriter;
import java.io.IO Exception ;

public class ExtractTable {
    public  static   void  main(String[] args) throws IOException {
        //创建PdfDocument实例
        PdfDocument pdf = new PdfDocument();
        //加载PDF示例文档
        pdf.loadFromFile("C:\Users\Test1\Desktop\sample.pdf");

        //创建StringBuilder和PdfTableExtractor实例
        StringBuilder builder = new StringBuilder();
        PdfTableExtractor extractor = new PdfTableExtractor(pdf);

        //遍历PDF文档的所有页
        for (int pageIndex = 0; pageIndex < pdf.getPages().getCount(); pageIndex++) {
            PdfTable[] tableLists = extractor.extractTable(pageIndex);
            if (tableLists != null && tableLists.length > 0) {
                for (PdfTable table : tableLists) {
                    //获取表格的所有行
                    for (int i = 0; i < table.getRowCount(); i++) {
                        //获取表格所有列
                        for (int j = 0; j < table.getColumnCount(); j++) {
                            //提取表格中的所有数据至StringBuilder
                            String text = table.getText(i, j);
                            builder.append(text + " | ");
                        }
                        builder.append("rn");
                    }
                }
            }
        }

        //保存数据至.txt文档
        FileWriter fw = new FileWriter("output/ExtractTable.txt");
        fw.write(builder.toString());
        fw.flush();
        fw.close();
    }
}  

表格信息提取效果如下:

文章来源:智云一二三科技

文章标题:Java 提取PDF文档中的表格信息

文章地址:https://www.zhihuclub.com/186903.shtml

关于作者: 智云科技

热门文章

网站地图