2016-02-26 190 views
-1

我試圖通過iText API,PDF閱讀器閱讀PDF。當我嘗試在控制檯中打印頁數時,儘管我的PDF有10頁,並且所有10頁都有一些內容(它們不是空白),但我總是得到零。以下是我使用的代碼片段和控制檯輸出。reader.getNumberOfPages()始終打印爲零

請幫我解決這個問題,

public static void main(String[] args) { 
    try { 
     PdfReader reader = new PdfReader("D:\\JEE(Main)_AcknowledgementPage (1).pdf"); 
     int number_of_pages = reader.getNumberOfPages(); 
     System.out.println("Number of pages is ...."+number_of_pages); 
     for (int i = 0; i < number_of_pages;) { 
      System.out.println("Inside for loop"); 
     } 
    } catch (Exception i) { 
     System.out.println(i); 
    } 
} 

我的控制檯輸出:

Number of pages is ....0 
+1

也許你的PDF文件實際上是一個XFA文件。您是否遇到與普通PDF文件相同的問題?另外:你使用iText 1.2.3?太瘋狂了!請升級! –

回答

1

您正在使用正確的API。它爲我返回正確的頁數。 但是你的for循環是錯誤的

for (int i = 0; i < number_of_pages;) { 
      System.out.println("Inside for loop"); 
     } 

你是不是在任何地方後,我< NUMBER_OF_PAGES增加我的價值。 它應該是這樣的。

for (int i = 0; i < number_of_pages; i++) { 
     System.out.println("Inside for loop"); 
    } 

在這裏,完整的代碼在這裏,我正在使用。

PdfReader reader = new PdfReader(
      "C:/anil/code/StackOverFlow/res/mySample.pdf"); 
int number_of_pages = reader.getNumberOfPages(); 
System.out.println("Number of pages is ...."+number_of_pages); 
for (int i = 0; i < number_of_pages; i++) { 
     System.out.println("Inside for loop"); 
} 
+0

我使用的API iText 1.2.3和循環是一個打字錯誤。請給我分享您使用的代碼? – Anju

+0

我使用了iText-2.1.4,並用一些文件測試了上面的代碼。有可能是你的PDF文件(密碼保護或無法讀取)的錯誤,這就是我猜 – Anil

+0

我把罐子更改爲2.1.4,它工作正常:)非常感謝你阿尼爾:) – Anju