我用AxAcroPdf來顯示PDF文件與此代碼:如何獲取AxAcroPdf中pdf文件的頁數?
AcroPdfViewer.src = FilePath;
AcroPdfViewer.setPageMode("none");
AcroPdfViewer.setZoom(100);
AcroPdfViewer.setShowToolbar(true);
我怎樣才能在AxAcroPdf PDF文件的總頁數?
我用AxAcroPdf來顯示PDF文件與此代碼:如何獲取AxAcroPdf中pdf文件的頁數?
AcroPdfViewer.src = FilePath;
AcroPdfViewer.setPageMode("none");
AcroPdfViewer.setZoom(100);
AcroPdfViewer.setShowToolbar(true);
我怎樣才能在AxAcroPdf PDF文件的總頁數?
按照API Reference有一個功能叫做GetNumPages:
GetNumPages(); Returns The number of pages in a file, or -1 if the number of
pages cannot be determined.
我想執行的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;
}
希望它幫助;)
您可以如果您只安裝了Acrobat Reader,則無法通過AxAcroPDFLib.AxAcroPDF獲取頁數。
至於第一個答案,使用GetNumPages()需要您安裝Acrobat SDK。另外,您需要有標準或專業的Adobe Acrobat Reader(不是免費的)才能使用此API。
就第二個答案而言,它在許多情況下不起作用。並非所有的pdf文檔都有「/ Type/Page」標籤。
但是,您可以嘗試其他API來獲取PDF頁面的數量。 You can see this question.
我可以使用的函數是:GetVersions,GetType,GetPreferredSize,GetOcx,GetNextControl,GetLifetimeService,GetHashCode,GetContainerControl,GetChildAtPoint。我無法訪問GetNumPages! ,我如何使用它? –
您可以看到ActiveX Host控件上的方法 - 使用GetOcx()獲取對AxAcroPdf控件的引用。 – stuartd
它似乎並不是AxAcroPdf類的一部分。根據文檔,它是PDDoc類的一部分。我和ahmadi有同樣的問題,就是它沒有顯示爲可用的方法。 – Paul