How can I get number of pages in a pdf file in AxAcroPdf?

9.6k views Asked by At

I use AxAcroPdf to display PDF file with this code :

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

How can I get number of total pages of the PDF file in AxAcroPdf ?

3

There are 3 answers

3
stuartd On BEST ANSWER

2018 edit: as commented below, the original answer referenced a method that is not an AxAcroPdf method. But an accepted answer cannot be deleted, so I have to leave it here.

0
Luis Enrique Acosta Rios On

I think the best way to perform a pdf page count is the following:

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;

    }

Hope it helps ;)

Source: Counting PDF Pages

0
eriee On

You cannot get number of pages via AxAcroPDFLib.AxAcroPDF if you have only Acrobat Reader installed.

As for the first answer, using GetNumPages() requires you to install Acrobat SDK. Plus, you need to have standard or professional Adobe Acrobat Reader (NOT FREE) to use this API.

In terms of the second answer, it doesn't work in many cases. Not all pdf documents have "/Type /Page" tag.

But you can try other APIs to get the number of PDF pages. You can see this question.