我使用 AxAcroPdf 显示带有此代码的 PDF 文件:
AcroPdfViewer.src = FilePath;
AcroPdfViewer.setPageMode("none");
AcroPdfViewer.setZoom(100);
AcroPdfViewer.setShowToolbar(true);
如何在 AxAcroPdf 中获取 PDF 文件的总页数?
我认为执行 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;
}
希望能帮助到你 ;)
资料来源: 计算 PDF 页面
2018 年编辑:如下所述,原始答案引用了一个不是 AxAcroPdf 方法的方法。但是无法删除已接受的答案,因此我必须将其留在这里。
如果您只安装了 Acrobat Reader,则无法通过 AxAcroPDFLib.AxAcroPDF 获取页数。
至于第一个答案,使用 GetNumPages() 需要您安装 Acrobat SDK。另外,您需要有标准或专业的 Adobe Acrobat Reader(非免费)才能使用此 API。
就第二个答案而言,它在很多情况下都不起作用。并非所有 pdf 文档都有“/Type /Page”标签。
但是您可以尝试其他 API 来获取 PDF 页面的数量。你可以看到这个问题。