1、使用PDFBox處理PDF文檔
PDF全稱Portable Document Format,是Adobe公司開發的電子文件格式。這種文件格式與操作系統平台無關,可以在Windows、Unix或Mac OS等操作系統上通用。
PDF文件格式將文字、字型、格式、顏色及獨立於設備和分辨率的圖形圖像等封裝在一個文件中。如果要抽取其中的文本信息,需要根據它的文件格式來進行解析。幸好目前已經有不少工具能幫助我們做這些事情。
2、PDFBox的下載
最常見的一種PDF文本抽取工具就是PDFBox了,訪問網址http://sourceforge.net/projects/pdfbox/,進入下載界面。讀者可以在該網頁下載其最新的版本。本文采用的是PDFBox-0.7.3版本。PDFBox是一個開源的Java PDF庫,這個庫允許你訪問PDF文件的各項信息。在接下來的例子中,將演示如何使用PDFBox提供的API,從一個PDF文件中提取出文本信息。
3、在Eclipse中配置
以下是在Eclipse中創建工程,並建立解析PDF文件的工具類的過程。
(1)在Eclipse的workspace中創建一個普通的Java工程:ch7。
(2)把下載的PDFBox-0.7.3.zip解壓。
(3)進入external目錄下,可以看到,這裡包括了PDFBox所有用到的外部包。復制下面的Jar包到工程ch7的lib目錄下(如還未建立lib目錄,則先創建一個)。
l bcmail-jdk14-132.jar
l bcprov-jdk14-132.jar
l checkstyle-all-4.2.jar
l FontBox-0.1.0-dev.jar
l lucene-core-2.0.0.jar
然後再從PDFBox的lib目錄下,復制PDFBox-0.7.3.jar到工程的lib目錄下。
(4)在工程上單擊右鍵,在彈出的快捷菜單中選擇“Build Path->Config Build Path->Add Jars”命令,把工程lib目錄下面的包都加入工程的Build Path。
4、使用PDFBox解析PDF內容
在剛剛創建的Eclipse工程中,創建一個ch7.pdfbox包,並創建一個PdfboxTest類。該類包含一個getText方法,用於從一個PDF中獲取文本信息,其代碼如下。
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;
public class PdfParser {
/**
* @param args
*/
// TODO 自動生成方法存根
public static void main(String[] args) throws Exception{
FileInputStream fis = new FileInputStream("F:\\task\\lerman-atem2001.pdf");
BufferedWriter writer = new BufferedWriter(new FileWriter("F:\\task\\pdf_change.txt"));
PDFParser p = new PDFParser(fis);
p.parse();
PDFTextStripper ts = new PDFTextStripper();
String s = ts.getText(p.getPDDocument());
writer.write(s);
System.out.println(s);
fis.close();
writer.close();
}
}
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103584p2.htm