Подтвердить что ты не робот

Объединение PDF файлов С#

Как объединить несколько PDF файлов в один PDF файл без стороннего компонента?

4b9b3361

Ответ 2

.NET Framework не содержит возможности изменения/создания PDF файлов. Вам нужен сторонний компонент, чтобы выполнить то, что вы ищете.

Ответ 3

Как говорили другие, для выполнения этой задачи ничего не создано. Используйте iTextSharp с помощью пример кода.

Ответ 4

AFAIK С# не имеет встроенной поддержки для обработки PDF, поэтому то, что вы просите, не может быть выполнено без использования стороннего компонента или библиотеки COTS.

В отношении библиотек существует множество возможностей. Чтобы указать несколько:

http://csharp-source.net/open-source/pdf-libraries

http://www.codeproject.com/KB/graphics/giospdfnetlibrary.aspx

http://www.pdftron.com/net/index.html

Ответ 5

Я не думаю, что .NET Framework содержит такие библиотеки. Я использовал iTextsharp с С# для объединения файлов PDF. Я думаю, что iTextsharp - самый простой способ сделать это. Вот код, который я использовал.

string[] lstFiles=new string[3];
    lstFiles[0][email protected]"C:/pdf/1.pdf";
    lstFiles[1][email protected]"C:/pdf/2.pdf";
    lstFiles[2][email protected]"C:/pdf/3.pdf";

    PdfReader reader = null;
    Document sourceDocument = null;
    PdfCopy pdfCopyProvider = null;
    PdfImportedPage importedPage;
    string [email protected]"C:/pdf/new.pdf";


    sourceDocument = new Document();
    pdfCopyProvider = new PdfCopy(sourceDocument, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create));

    //Open the output file
    sourceDocument.Open();

    try
    {
        //Loop through the files list
        for (int f = 0; f < lstFiles.Length-1; f++)
        {
            int pages =get_pageCcount(lstFiles[f]);

            reader = new PdfReader(lstFiles[f]);
            //Add pages of current file
            for (int i = 1; i <= pages; i++)
            {
                importedPage = pdfCopyProvider.GetImportedPage(reader, i);
                pdfCopyProvider.AddPage(importedPage);
            }

            reader.Close();
         }
        //At the end save the output file
        sourceDocument.Close();
    }
    catch (Exception ex)
    {
        throw ex;
    }


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

        return matches.Count;
    }
}

Ответ 6

Хотя уже сказано, вы не можете манипулировать PDF файлами со встроенными библиотеками .NET Framework. Однако я могу рекомендовать iTextSharp, который является .NET-портом Java iText. Я играл с ним и нашел, что это очень простой инструмент для использования.