Java 讀取PDF中的文本和圖片的方法
本文將介紹通過(guò)Java程序來(lái)讀取PDF文檔中的文本和圖片的方法。分別調(diào)用方法extractText()和extractImages()來(lái)讀取。
使用工具:Free Spire.PDF for Java(免費(fèi)版)
Jar文件獲取導(dǎo)入:
方法1:通過(guò)官網(wǎng)下載jar文件包。下載后,解壓文件,并將lib文件夾下的Spire.Pdf.jar文件導(dǎo)入java程序。導(dǎo)入后如下圖:

方法2: 可通過(guò)maven倉(cāng)庫(kù)安裝導(dǎo)入。
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 {
//加載測(cè)試文檔
PdfDocument pdf = new PdfDocument("sample.pdf");
//實(shí)例化StringBuilder類
StringBuilder sb = new StringBuilder();
//定義一個(gè)int型變量
int index = 0;
//遍歷PDF文檔中每頁(yè)
PdfPageBase page;
for (int i= 0; i<pdf.getPages().getCount();i++) {
page = pdf.getPages().get(i);
//調(diào)用extractText()方法提取文本
sb.append(page.extractText(true));
FileWriter writer;
try {
//將StringBuilder對(duì)象中的文本寫入到txt
writer = new FileWriter("ExtractText.txt");
writer.write(sb.toString());
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
//調(diào)用extractImages方法獲取圖片
for (BufferedImage image : page.extractImages()) {
//指定輸出圖片名,指定圖片格式
File output = new File(String.format("Image_%d.png", index++));
ImageIO.write(image, "PNG", output);
}
}
pdf.close();
}
}
文本和圖片讀取效果:

總結(jié)
以上所述是小編給大家介紹的Java 讀取PDF中的文本和圖片的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
如何寫好一個(gè)Spring組件的實(shí)現(xiàn)步驟
這篇文章主要介紹了如何寫好一個(gè)Spring組件的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Spring5新功能@Nullable注解及函數(shù)式注冊(cè)對(duì)象
這篇文章主要為大家介紹了Spring5新功能詳解@Nullable注解及函數(shù)式注冊(cè)對(duì)象,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
CountDownLatch和Atomic原子操作類源碼解析
這篇文章主要為大家介紹了CountDownLatch和Atomic原子操作類的源碼解析以及理解應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無(wú)效的問(wèn)題
這篇文章主要介紹了解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無(wú)效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
mybatis多對(duì)多關(guān)聯(lián)實(shí)戰(zhàn)教程(推薦)
下面小編就為大家?guī)?lái)一篇mybatis多對(duì)多關(guān)聯(lián)實(shí)戰(zhàn)教程(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
在Spring?MVC中使用@ControllerAdvice創(chuàng)建全局異常處理器的方法
在Spring?MVC中,可以使用@ControllerAdvice或@RestControllerAdvice注解來(lái)定義全局異常處理器類,并使用?@ExceptionHandler注解來(lái)定義處理特定異常的方法,本文就給大家介紹了Spring?MVC?@ControllerAdvice創(chuàng)建處理器的方法,需要的朋友可以參考下2023-08-08
圖解二叉樹的三種遍歷方式及java實(shí)現(xiàn)代碼
本篇文章主要介紹了圖解二叉樹的三種遍歷方式及java實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07

