1.首先下載pdfbox-app-1.8.10.jar(下載地址:http://pdfbox.apache.org/download.html)
2.將pdfbox-app-1.8.10.jar加載到eclipse工程中
1.新建java工程:Flie->New->Java Project,如PdfToText工程,然后右鍵該工程BuildPath->Configure Bulid Path..,單擊Libaries,點擊Add External JARs,將剛才下載好的pdfbox-app-1.8.10.jar添加進去,點擊Order and Export,將剛才的包打勾即可,最后點擊ok。
2.新建一個PdfboxTest的類,以下就是源代碼
import java.io.File; import java.io.FileOutputStream; import java.io.Writer; import java.net.MalformedURLException; import java.net.URL; import java.io.OutputStreamWriter; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; //Author:Yiutto //destination:主要用於pdf文件批處理轉換為text文檔 public class PdfboxTest { public void getText(String file) throws Exception { // 是否排序 boolean sort = false; // pdf文件名 @1 “E:\\data\\Inputpdf\\”是pdf文件夾根目錄,所有的pdf文件都放在該目錄下(自己可以設置) String pdfFile = "E:\\data\\Inputpdf\\" + file; // 輸入文本文件名稱 String textFile = null; // 編碼方式 String encoding = "UTF-8"; // 開始提取頁數 int startPage = 1; // 結束提取頁數 int endPage = Integer.MAX_VALUE; // 文件輸入流,生成文本文件 Writer output = null; // 內存中存儲的PDF Document PDDocument document = null; try { try { // 首先當作一個URL來加載文件,如果得到異常再從本地系統裝載文件 URL url = new URL(pdfFile); document = PDDocument.load(url); // 獲取PDF的文件名 // String fileName = url.getFile(); // 以原來pdf名稱來命名新產生的txt文件 if (file.length() > 4) { File outputFile = new File(file.substring(0, file.length() - 4) + ".txt"); textFile = outputFile.getName(); } } catch (MalformedURLException e) { // 如果作為URL裝載得到異常則從文件系統裝載 document = PDDocument.load(pdfFile); if (file.length() > 4) { textFile = file.substring(0, file.length() - 4) + ".txt"; } } // 文件輸入流,寫入文件到textFile @2 “E:\\data\\Outputtxt\\”是text文檔輸出目錄(自己可以設置) output = new OutputStreamWriter(new FileOutputStream( "E:\\data\\Outputtxt\\" + textFile), encoding); // PDFTextStripper來提取文本 PDFTextStripper stripper = null; stripper = new PDFTextStripper(); // 設置是否排序 stripper.setSortByPosition(sort); // 設置起始頁 stripper.setStartPage(startPage); // 設置結束頁 stripper.setEndPage(endPage); // 調用PDFTextStripper的writeText提取並輸出文本 stripper.writeText(document, output); } finally { if (output != null) { // 關閉輸出流 output.close(); } if (document != null) { // 關閉PDF Document document.close(); } } } public static void main(String[] args) { // @3 “E:\\data\\Inputpdf\\”是pdf文件夾根目錄,所有的pdf文件都放在該目錄下(自己可以設置) File input = new File("E:\\data\\Inputpdf\\"); if (input.isDirectory()) { String[] fileList = input.list(); PdfboxTest test = new PdfboxTest(); System.out.println(input.toString()+"\n"); for (String file : fileList) { try { System.out.println(" "+file + " is prepared converting to text...."); test.getText(file); System.out.println(" "+file + "is done.\n"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
小篇要說:@1 “E:\\data\\Inputpdf\\”是pdf文件夾根目錄,所有的pdf文件都放在該目錄下(自己可以設置)
@2 “E:\\data\\Outputtxt\\”是text文檔輸出目錄(自己可以設置)
@3 “E:\\data\\Inputpdf\\”是pdf文件夾根目錄,所有的pdf文件都放在該目錄下(自己可以設置)
這3句注釋行下的代碼可以根據自己具體情況更改,已經介紹的這么詳細了,希望大家點贊!!