2013-09-24 88 views
0

我已經在stackoverflow上搜索關於此主題的問題。他們真的幫助我,但我再次堅持。解析從網上下載的PDF

我的問題是,我需要編寫一個方法,從像www.example.com/abc.pdf這樣的站點下載PDF,然後我想讀取輸出。我不想保存此文件,只需在系統中讀取即可。我不需要將字節輸出到fileoutputstream。我試圖將字節轉換爲char來獲取字符(它可能是最愚蠢的解決方案)。但我得到未知的字符。任何想法或我是否以錯誤的方式理解它?

下面是代碼及其輸出:

String textlink="http://www.selab.isti.cnr.it/ws-mate/example.pdf";// it comes from main class 

public String HtmlTest(String textLink) throws IOException{ 

     StringBuilder sd=new StringBuilder(); 
     URL link=new URL(textLink); 
     URLConnection urlConn = link.openConnection(); 

     BufferedInputStream in = null; 
     try 
     { 

      in = new BufferedInputStream(urlConn.getInputStream()); 
      byte data[] = new byte[1024]; 
      in.read(data, 0, 1024); 
     for (int j = 0; j < data.length; j++) { 

      if(j%100==0){ 
      sd.append((char)data[j]+"\n"); // i used this for making readable text 
      } 
      else{ 
      sd.append((char)data[j]); 
      } 

     } 
     } 
     finally 
     { 
      if (in != null) 
       in.close(); 
     } 
     return sd.toString(); 

    } 

輸出

運行:

% 
PDF-1.3 
%ᅦ↓マᄁ 
7 0 obj 
<</Length 8 0 R/Filter /FlateDecode>> 
stream 
xワᆳY[モᅴᄊ○ᄈ&?BoNf,,q%¢ᄐ4￞x&゙6ᄅロlᅮ 
ラᄐ￐폐Zeム￲f→チ 
+0

嘗試指定閱讀時使用的編碼。 – Andromeda

+0

我會考慮調查IText:http://itextpdf.com/ 但請注意,他們的許可證是有點限制。 – hooknc

+1

問題是PDF不是純文本文件(.txt):它有一個定義良好且結構相當的格式。你一定需要一個庫來以一種乾淨的方式從PDF中提取文本。 –

回答

0

你不會得到很遠的嘗試讀取。 pdf文件,就好像它基本上是一個文本文件。對於初學者來說,「文本」是壓縮的二進制格式;還有其他問題你可能還需要處理。

強烈建議:

使用Java .PDF庫像Apache PDFBox

恕我直言>。