Как я могу получить количество страниц в файле PDF в AxAcroPdf?

Я использую AxAcroPdf для отображения файла PDF с этим кодом:

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

Как я могу получить общее количество страниц файла PDF в AxAcroPdf?

3 ответа

Решение

2018 edit: как прокомментировано ниже, исходный ответ ссылался на метод, который не является методом AxAcroPdf. Но принятый ответ не может быть удален, поэтому я должен оставить его здесь.

Я думаю, что лучший способ подсчета 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 страниц

Вы не можете получить количество страниц через AxAcroPDFLib.AxAcroPDF, если у вас установлен только Acrobat Reader.

Что касается первого ответа, использование GetNumPages() требует установки Acrobat SDK. Кроме того, для использования этого API вам необходим стандартный или профессиональный Adobe Acrobat Reader (НЕ БЕСПЛАТНО).

Что касается второго ответа, он не работает во многих случаях. Не все документы в формате PDF имеют тег "/Type /Page".

Но вы можете попробовать другие API, чтобы получить количество страниц PDF. Вы можете увидеть этот вопрос.

Другие вопросы по тегам