如何获取目录中每个pdf文档内的页数

时间:2012-10-05 13:40:36

标签: c# linq c#-4.0 pdf c#-3.0

  

可能重复:
  Determine Number of Pages in a PDF File using C# (.NET 2.0)

我使用以下代码来获取目录中pdf文件数量的计数。

    var extensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase) 
    {
        ".pdf", 
    };
    var baseDir = BatchFolderPath;
    var pdfFilesCount = Directory.EnumerateFiles(baseDir)
                                 .Count(filename =>
                                        extensions.Contains(Path.GetExtension(filename)));

我不知道如何获取目录中每个pdf文档中的页数。请帮忙。感谢。

2 个答案:

答案 0 :(得分:4)

问题已经被问到Stack Overflow here。 希望它有所帮助。

修改
这是您可以在指定目录中找到每个pdf文件中的页数的方法:

using System;
using iTextSharp.text.pdf;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int PgCount = 0;
            string[] PdfFiles = Directory.GetFiles(@"C:\MyFolder\", "*.pdf");
            Console.WriteLine("{0} PDF Files in directory", PdfFiles.Length.ToString());
            for (int i = 0; i < PdfFiles.Length; i++)
            {
                PgCount = GetNumberOfPages(PdfFiles[i]);
                Console.WriteLine("{0} File has {1} pages", PdfFiles[i], PgCount.ToString());
            }
            Console.ReadLine();
        }

        static int GetNumberOfPages(String FilePath)
        {
            PdfReader pdfReader = new PdfReader(FilePath); 
            return pdfReader.NumberOfPages; 
        }
    }
}  

您必须从here下载itextsharp.dll并将其包含在参考文献中。

答案 1 :(得分:1)

有几个库可以使用c#中的pdf。 考虑

  1. iTextSharp
  2. Report.NET
  3. SharpPDF
  4. PDFsharp
  5. PDFjet Open Source Edition