Определите число страниц в [закрытом] файле PDF

50
задан slugster 26 October 2012 в 13:57
поделиться

6 ответов

Вам будет нужен API PDF для C#. iTextSharp является одним возможным API, хотя лучшие могли бы существовать.

iTextSharp Пример

необходимо установить iTextSharp.dll как ссылку. Загрузите iTextsharp с SourceForge.net, Это - полная рабочая программа с помощью консольного приложения.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text.xml;
namespace GetPages_PDF
{
  class Program
{
    static void Main(string[] args)
      {
       // Right side of equation is location of YOUR pdf file
        string ppath = "C:\\aworking\\Hawkins.pdf";
        PdfReader pdfReader = new PdfReader(ppath);
        int numberOfPages = pdfReader.NumberOfPages;
        Console.WriteLine(numberOfPages);
        Console.ReadLine();
      }
   }
}
68
ответ дан Robert Groves 7 November 2019 в 10:41
поделиться

найденный путем в http://www.dotnetspider.com/resources/21866-Count-pages-PDF-file.aspx это не требует покупки библиотеки PDF

7
ответ дан 7 November 2019 в 10:41
поделиться

Я использовал pdflib для этого.

    p = new pdflib();

    /* Open the input PDF */
    indoc = p.open_pdi_document("myTestFile.pdf", "");
    pageCount = (int) p.pcos_get_number(indoc, "length:pages");
4
ответ дан Matthew Lock 7 November 2019 в 10:41
поделиться

У меня есть хорошее использование успеха CeTe Динамические продукты PDF. Они не свободны, но хорошо документируются. Они сделали задание для меня.

http://www.dynamicpdf.com/

0
ответ дан Paul Lefebvre 7 November 2019 в 10:41
поделиться

Это должно помочь:

public int getNumberOfPdfPages(string fileName)
{
    using (StreamReader sr = new StreamReader(File.OpenRead(fileName)))
    {
        Regex regex = new Regex(@"/Type\s*/Page[^s]");
        MatchCollection matches = regex.Matches(sr.ReadToEnd());

        return matches.Count;
    }
}

Из ответа Рэйчел и на этот тоже.

37
ответ дан 7 November 2019 в 10:41
поделиться

Я использовал вышеприведенный код, который решает проблему с помощью регекса, и он работает, но довольно медленно. Он читает весь файл, чтобы определить количество страниц.

Я использовал его в веб-приложении, и страницы иногда перечисляли 20 или 30 PDF за раз, и в этом случае время загрузки страницы проходило от пары секунд до почти минуты благодаря методу подсчета страниц.

Я не знаю, намного ли лучше библиотеки сторонних разработчиков, я бы надеялся, что так и есть, и я с успехом использовал pdflib в других сценариях.

0
ответ дан 7 November 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: