2012-06-08 144 views
1

我用AxAcroPdf來顯示PDF文件與此代碼:如何獲取AxAcroPdf中pdf文件的頁數?

AcroPdfViewer.src = FilePath; 
AcroPdfViewer.setPageMode("none"); 
AcroPdfViewer.setZoom(100); 
AcroPdfViewer.setShowToolbar(true); 

我怎樣才能在AxAcroPdf PDF文件的總頁數?

回答

1

按照API Reference有一個功能叫做GetNumPages:

GetNumPages(); Returns The number of pages in a file, or -1 if the number of 
       pages cannot be determined. 
+1

我可以使用的函數是:GetVersions,GetType,GetPreferredSize,GetOcx,GetNextControl,GetLifetimeService,GetHashCode,GetContainerControl,GetChildAtPoint。我無法訪問GetNumPages! ,我如何使用它? –

+0

您可以看到ActiveX Host控件上的方法 - 使用GetOcx()獲取對AxAcroPdf控件的引用。 – stuartd

+1

它似乎並不是AxAcroPdf類的一部分。根據文檔,它是PDDoc類的一部分。我和ahmadi有同樣的問題,就是它沒有顯示爲可用的方法。 – Paul

1

我想執行的PDF頁面計數的最好辦法是:

public static int GetNoOfPagesPDF(string FileName) 
    { 
     int result = 0; 
     FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read); 
     StreamReader r = new StreamReader(fs); 
     string pdfText = r.ReadToEnd(); 

     System.Text.RegularExpressions.Regex regx = new Regex(@"/Type\s*/Page[^s]"); 
     System.Text.RegularExpressions.MatchCollection matches = regx.Matches(pdfText); 
     result = matches.Count; 
     return result; 

    } 

希望它幫助;)

來源:Counting PDF Pages

0

您可以如果您只安裝了Acrobat Reader,則無法通過AxAcroPDFLib.AxAcroPDF獲取頁數。

至於第一個答案,使用GetNumPages()需要您安裝Acrobat SDK。另外,您需要有標準或專業的Adobe Acrobat Reader(不是免費的)才能使用此API。

就第二個答案而言,它在許多情況下不起作用。並非所有的pdf文檔都有「/ Type/Page」標籤。

但是,您可以嘗試其他API來獲取PDF頁面的數量。 You can see this question.

相關問題