Java如何读取pdf的内容?

聚IT


这个对于Java开发者来说简直是简单不能再简单的问题,以至于我不知道提问的人为何要提问,在百度一搜一大堆,也可能提问者想到一个最好的回答。下面我来说说怎么读取。3种方法:

1. 开源框架 pdfbox 2. 国产的框架

Spire.PDF

3. iTika

第一步:引入依赖

第二步:Junit测试用例

1. pdfBox

2. spire

3. Tika

其实我认为这些api都大同小异,各有各的优势吧,不过个人更倾向于apache的,毕竟大平台。


科技小打杂


题主,你好。读取pdf前提是pdf必须是双面,其判断标准是:“打开pdf鼠标右键滑去,查看是否可以复制文字”。如果是双面则进行下一步读取操作。

第一步:第三方组件下载

我们可以使用第三方组件“Free Spire.PDF for JAVA”下载解压后将Spire.Pdf.jar包和Spire.Common.jar包到你的Java应用程序中,如下图所示:



第二步:编写代码

代码见下图(贴上去太乱,如有需要私信给你。)


第三步:运行

  1. 准备双面pdf文件,并copy到程序下。
  2. 运行应用程序。
  3. 查看ExtracText1.txt文件。

MR王峰


这里简单介绍2种Java读取PDF文件内容的方法,分别是PDFBox和Spire.PDF,感兴趣的朋友可以尝试一下:

01

PDFBox

这是Apache提供的一个免费、开源工具,专门用于操作PDF文档,目前支持加密/解密PDF文档,从PDF文档中导出表单数据,向已有PDF文档追加内容,以及切分PDF文档等,导入项目或工程的话,可以直接下载Jar包,也可以直接Maven引入,如下:

导入成功后,我们就可以直接编码读取PDF文件内容了,测试代码如下,基本思路先加载PDF文件,创建PDDocument对象,然后再创建一个PDFTextStripper文本剥离器,最后再直接获取PDF文本内容即可,整个过程不难,理解起来也非常容易:

02

Spire.PDF

这也是一个专门用于读取PDF文件内容的Java工具包,商业版需要付费购买,也有个人免费版,但功能比较局限,只能提取前10页内容,目前支持文本、图片等内容提取,导入项目或工程的话,可以直接下载Jar包,也可以直接Maven引入,如下:

导入完成后,我们就可以直接编码来读取PDF文件内容了,测试代码如下,基本思路先加载PDF文件,然后循环遍历每页提取内容(文本的话是extractText方法,图片的话是extractImages方法),最后再输出或保存提取内容即可:

目前,就分享这2种Java读取PDF文件内容的方法吧。总的来说,整个过程非常简单,只要你有一定Java基础,熟悉一下上面的代码和示例,很快就能掌握的,当然,你也可以使用其他工具包,像iTika等也都非常不错,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。


小小猿爱嘻嘻


如何在Java应用程序中读取PDF文件的文本内容。(读取图片也支持,参考这篇文章Java 提取PDF文档中的图片)在Java应用程序中读取PDF,我们可以借助第三方PDF控件,本文所使用的控件是免费Java PDF组件Free Spire.PDF for JAVA。在使用以下代码前,你需要下载Free Spire.PDF for JAVA包并解压缩,然后从lib文件夹下,导入Spire.Pdf.jar包和Spire.Common.jar包到你的Java应用程序中:(更正:以前的旧版本有2个jar包,现在的新版本糅合到一个jar包了)Extract_Text.Javaimport com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import java.io.*; public class Extract_Text {        public static void main(String[] args) {                        //创建PdfDocument实例           PdfDocument doc= new PdfDocument();            //加载PDF文件           doc.loadFromFile("test.pdf");                   StringBuilder sb= new StringBuilder();                   PdfPageBase page;                  //遍历PDF页面,获取文本           for(int i=0;i<doc.getpages>

java分享


也可以使用native的方式调用C++的开源库,PDFium是福昕开源给Google的,国产最牛的PDF引擎


喝粥养胃的大河


请参考pdfbox这个插件 今天刚帮同事解决取行的问题 这个插件是apache开源的插件 还算好用

/<doc.getpages>


分享到:


相關文章: