Java 读取PDF中的文本和图片的方法

 更新时间:2019年07月18日 11:55:57   作者:E-iceblue  
本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取,需要的朋友可以参考下

本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。

使用工具:Free Spire.PDF for Java(免费版)

Jar文件获取导入:

方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序。导入后如下图:

方法2: 可通过maven仓库安装导入。

Java代码示例

import com.spire.pdf.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractText {
  public static void main(String[]args) throws Exception {
    //加载测试文档
    PdfDocument pdf = new PdfDocument("sample.pdf");
    //实例化StringBuilder类
    StringBuilder sb = new StringBuilder();
    //定义一个int型变量
    int index = 0;
    //遍历PDF文档中每页
    PdfPageBase page;
    for (int i= 0; i<pdf.getPages().getCount();i++) {
      page = pdf.getPages().get(i);
      //调用extractText()方法提取文本
      sb.append(page.extractText(true));
      FileWriter writer;
      try {
        //将StringBuilder对象中的文本写入到txt
        writer = new FileWriter("ExtractText.txt");
        writer.write(sb.toString());
        writer.flush();
      } catch (IOException e) {
        e.printStackTrace();
      }
      //调用extractImages方法获取图片
      for (BufferedImage image : page.extractImages()) {
          //指定输出图片名,指定图片格式
          File output = new File(String.format("Image_%d.png", index++));
          ImageIO.write(image, "PNG", output);
      }
    }
    pdf.close();
  }
}

文本和图片读取效果:

总结

以上所述是小编给大家介绍的Java 读取PDF中的文本和图片的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Java NIO工作原理的全面分析

    Java NIO工作原理的全面分析

    JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。
    2013-02-02
  • 如何写好一个Spring组件的实现步骤

    如何写好一个Spring组件的实现步骤

    这篇文章主要介绍了如何写好一个Spring组件的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • C++享元模式详解

    C++享元模式详解

    这篇文章主要为大家详细介绍了C++设计模式之享元模式Flyweight,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Spring5新功能@Nullable注解及函数式注册对象

    Spring5新功能@Nullable注解及函数式注册对象

    这篇文章主要为大家介绍了Spring5新功能详解@Nullable注解及函数式注册对象,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • CountDownLatch和Atomic原子操作类源码解析

    CountDownLatch和Atomic原子操作类源码解析

    这篇文章主要为大家介绍了CountDownLatch和Atomic原子操作类的源码解析以及理解应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 解决SSLContext.getInstance()中参数设置TLS版本无效的问题

    解决SSLContext.getInstance()中参数设置TLS版本无效的问题

    这篇文章主要介绍了解决SSLContext.getInstance()中参数设置TLS版本无效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • mybatis多对多关联实战教程(推荐)

    mybatis多对多关联实战教程(推荐)

    下面小编就为大家带来一篇mybatis多对多关联实战教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • java实现简单扫雷游戏

    java实现简单扫雷游戏

    这篇文章主要为大家详细介绍了java实现简单扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 在Spring MVC中使用@ControllerAdvice创建全局异常处理器的方法

    在Spring MVC中使用@ControllerAdvice创建全局异常处理器的方法

    在Spring MVC中,可以使用@ControllerAdvice或@RestControllerAdvice注解来定义全局异常处理器类,并使用 @ExceptionHandler注解来定义处理特定异常的方法,本文就给大家介绍了Spring MVC @ControllerAdvice创建处理器的方法,需要的朋友可以参考下
    2023-08-08
  • 图解二叉树的三种遍历方式及java实现代码

    图解二叉树的三种遍历方式及java实现代码

    本篇文章主要介绍了图解二叉树的三种遍历方式及java实现代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07

最新评论