You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java Selenium导出PDF/图片原格式到Excel/Word及单单元格问题咨询

PDF/图片内容导出到Excel/Word问题解决方案

现有代码问题排查

你当前代码直接将PDFTextStripper提取到的完整PDF文本字符串写入了第0行第1个单元格,没有对文本做结构化拆分,因此所有内容都会存入同一个单元格。

现有功能修复代码

以下是按行拆分PDF文本、每行对应Excel一行的修改后代码:

public void readPDFfromintranet() throws Exception {
    FileInputStream fis = new FileInputStream(filein);
    PDDocument pdfdocument = PDDocument.load(fis);
    int count = pdfdocument.getNumberOfPages();
    System.out.println(count);
    PDFTextStripper textstriper = new PDFTextStripper();
    String doctext = textstriper.getText(pdfdocument);
    System.out.println(doctext);
    
    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet();
    // 按换行符拆分PDF文本为多行
    String[] textLines = doctext.split("\\r?\\n");
    for (int i = 0; i < textLines.length; i++) {
        // 每行创建对应Excel行
        HSSFRow row = sheet.createRow(i);
        // 如果需要按列拆分,可再对textLines[i]按制表符/多空格拆分写入不同单元格
        row.createCell(0).setCellValue(textLines[i]);
    }
    FileOutputStream fileout = new FileOutputStream("D:\\Raghavendra\\Isolve\\Output.xls");
    workbook.write(fileout);
    workbook.close();
    
    pdfdocument.close();
    fis.close();
}

如果你的PDF包含表格,需要进一步保留表格行列格式,可以改用区域提取工具识别表格结构,将识别到的每行数据对应Excel的行,每列数据对应Excel的单元格即可。

全场景实现方案

PDF内容按原始格式导出

  • 导出到Excel:如果需要保留PDF原有排版、表格结构,可使用区域文本提取工具定位内容位置,按PDF的坐标对应Excel的行列位置写入;表格内容可通过结构化识别工具提取为二维数组后直接写入Excel。
  • 导出到Word:使用Apache POI的XWPF组件处理Word文档,提取到的PDF段落按原格式设置Word段落样式,识别到的表格直接生成Word对应表格即可。

图片内容按原始格式导出

图片中的文本、表格需要先通过OCR工具做结构化识别,提取出段落、表格结构数据后,再对应写入Excel或Word的对应位置,即可保留原始排版。
注:Selenium是浏览器自动化工具,仅负责从网页下载PDF/图片的操作环节,本身不承担文件内容解析工作,解析环节用上述PDF处理、OCR工具即可。

内容的提问来源于stack exchange,提问作者Raghavendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:06:01