2009-10-28 152 views
6

我在使用iText閱讀PDF文件時遇到問題。我只能閱讀一個頁面,但是當我轉到第二頁時,它會給出異常。我想閱讀任何pdf文件的所有頁面。使用iText閱讀pdf

PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

我正在使用這些行,並在第二行給出異常。

+2

請列出你得到的例外,因爲沒有這個沒有任何信息可以繼續下去。 – 2009-10-28 14:16:35

回答

2
  1. 嘗試更改文件位置。有時OS不允許其他應用程序從某些系統驅動器讀取文件。放在D的某處:等我在桌面上讀取文件時遇到Vista中的這個問題。

  2. 我實際上在我的一個PDF上運行了相同的兩行代碼,它確實打印了文本。另外請確保您在PDF中有足夠的頁面。 (3頁或更多)或嘗試用parser.getTextFromPage(1)等從其他頁面獲取內容。

+0

謝謝老闆這是我的錯。再次感謝。 – Sunil 2009-10-28 15:42:06

0

當你說一個頁面,你的意思是第一頁?您可能會錯誤地將頁面編入索引?沒有更多的信息,它可能是任何東西。

+0

PdfTextExtractor parser = new PdfTextExtractor(new PdfReader(「C:/Text.pdf」)); parser.getTextFromPage(3); 我正在使用這些行。這些給出了例外 – Sunil 2009-10-28 14:23:33

+0

它給出了什麼例外? – 2009-10-28 14:28:20

+0

java.io.IOException:未找到C:/Text.pdf作爲文件或資源。 at com.lowagie.text.pdf.RandomAccessFileOrArray。 (未知來源) at com.lowagie.text.pdf.RandomAccessFileOrArray。 (未知來源) at com.lowagie.text.pdf.PRTokeniser。 (未知來源) at com.lowagie.text.pdf.PdfReader。 (未知來源) at com.lowagie.text.pdf.PdfReader。 (來源不明) 在test1.ReadPdf.read(ReadPdf.java:23) 在test1.ReadPdf.main(ReadPdf.java:55) – Sunil 2009-10-28 14:30:32

0

您是否正在爲每個操作重新構建解析器和閱讀器?你可以這樣做,但效率不高(創建一個新的PdfReader有很多開銷)。

0
import com.itextpdf.text.pdf.PdfReader; 
import com.itextpdf.text.pdf.parser.PdfTextExtractor; 

/** 
* This class is used to read an existing 
* pdf file using iText jar. 
* @author javawithease 
*/ 
public class PDFReadExample { 
    public static void main(String args[]){ 
    try { 
    //Create PdfReader instance. 
    PdfReader pdfReader = new PdfReader("D:\\testFile.pdf");  

    //Get the number of pages in pdf. 
    int pages = pdfReader.getNumberOfPages(); 

    //Iterate the pdf through pages. 
    for(int i=1; i<=pages; i++) { 
     //Extract the page content using PdfTextExtractor. 
     String pageContent = 
     PdfTextExtractor.getTextFromPage(pdfReader, i); 

     //Print the page content on console. 
     System.out.println("Content on Page " 
          + i + ": " + pageContent); 
     } 

     //Close the PdfReader. 
     pdfReader.close(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
    } 
}