如何在AxAcroPdf中获取pdf文件中的页数?

时间:2012-06-08 11:31:51

标签: c# winforms axacropdf

我使用AxAcroPdf显示包含以下代码的PDF文件:

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

如何在AxAcroPdf中获取PDF文件的总页数?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

2018编辑:如下所述,原始答案引用了not an AxAcroPdf method的方法。但是接受的答案不能删除,所以我必须把它留在这里。

答案 2 :(得分:0)

如果您只安装了Acrobat Reader,则无法通过AxAcroPDFLib.AxAcroPDF获取页数。

至于第一个答案,使用GetNumPages()要求您安装Acrobat SDK。此外,您需要使用标准或专业的Adobe Acrobat Reader(非免费)才能使用此API。

就第二个答案而言,它在许多情况下都不起作用。并非所有的pdf文件都有" / Type / Page"标签

但您可以尝试其他API来获取PDF页面的数量。 You can see this question.