Re: [問題] PDFBox-讀取PDF

看板java作者 (microtech)時間16年前 (2008/01/27 14:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《neewollaH (萬聖節)》之銘言: : 可是我查到的資料都是將PDF轉成文字檔(.txt) : 而不能直接放到JEditorPane裡面 可以轉成文字檔的話,過程中應該就已經抓出 pdf 中的文字了吧 !? 再把文字丟給 JEditorPane 就 ok 了 PDFBox 也沒有很熟,不過我所知道的 PDFTextStripper 就是用來處理你的需求 : 有沒有哪個方法是可以直接取得文字而不用產生文件呢? 提供參考: import org.pdfbox.cos.COSDocument; import org.pdfbox.pdfparser.PDFParser; import org.pdfbox.pdmodel.PDDocument; import org.pdfbox.util.PDFTextStripper; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class PDFBoxExtractTxt { private FileInputStream fis; public PDFBoxExtractTxt(File file) { try { this.fis = new FileInputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } } public void printDocument() { COSDocument cosDoc = null; try { PDFParser parser = new PDFParser(fis); parser.parse(); cosDoc = parser.getDocument(); } catch (IOException e) { closeCOSDocument(cosDoc); System.out.println("Cannot parse PDF document: " + e.getMessage()); } // extract PDF document's textual content String docText; try { PDFTextStripper stripper = new PDFTextStripper(); docText = stripper.getText(new PDDocument(cosDoc)); System.out.println("PDF Contents:\n" + docText); } catch (IOException e) { closeCOSDocument(cosDoc); System.err.println("Cannot extract PDF document's textual content: " + e.getMessage()); } } private void closeCOSDocument(COSDocument cosDoc) { if (cosDoc != null) { try { cosDoc.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { PDFBoxExtractTxt pdfBox = new PDFBoxExtractTxt(new File("XXX.pdf")); pdfBox.printDocument(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.142.111 ※ 編輯: microtech 來自: 220.134.142.111 (01/27 14:25)
文章代碼(AID): #17d2AqCK (java)
討論串 (同標題文章)
文章代碼(AID): #17d2AqCK (java)