Объединение PDF файлов с использованием .NET 5

Все, что вам нужно сделать, это вызвать метод Concatenate класса PdfFileEditor, и все ваши входные PDF файлы будут объединены, и будет сгенерирован один PDF файл. Давайте создадим приложение, чтобы попрактиковаться в объединении PDF файлов. Мы создадим приложение с использованием Visual Studio.NET 2019.

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

В форме есть три текстовых поля (textBox1, textBox2, textBox3) с соответствующими метками ссылок (linkLabel1, linkLabel2, linkLabel3) для выбора PDF файлов. Нажав на метку “Обзор”, появится диалоговое окно выбора файла (inputFileDialog1), которое позволит нам выбрать PDF файлы (для объединения).

private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
    if (openFileDialog1.ShowDialog()==DialogResult.OK)
    {
        textBox1.Text=openFileDialog1.FileName;
    }
}

Представлен вид приложения Windows Forms для демонстрации класса PdfFileEditor для объединения PDF файлов.

Объединить PDF файлы

После того как мы выберем PDF файл и нажмем кнопку OK, полное имя файла с путем будет присвоено соответствующему текстовому полю.

Выбор PDF файла

Аналогично, мы можем выбрать два или три входных PDF файла для объединения, как показано ниже:

Выбор двух или трех входных PDF файлов

Последнее текстовое поле (textBox4) будет принимать путь назначения выходного PDF файла с его именем, где будет создан этот выходной файл.

Путь назначения выходного PDF файла

Метод Concatenate

Метод Concatenate()

Метод Concatenate() может использоваться тремя способами. Давайте подробнее рассмотрим каждый из них:

Подход 1

  • Concatenate(string firstInputFile, string secInputFile, string outputFile)

Этот подход хорош только в том случае, если вам нужно объединить только два PDF файла. Первые два аргумента (firstInputFile и secInputFile) предоставляют полные имена файлов с их путями хранения для двух входных PDF файлов, которые нужно объединить. Третий аргумент (outputFile) предоставляет желаемое имя файла с путем для выходного PDF файла.

Объединить два PDF файла по именам файлов

private void button1_Click(object sender, System.EventArgs e)
{
    var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
    pdfEditor.Concatenate(textBox1.Text,textBox2.Text,textBox4.Text);
}

Подход 2

  • Concatenate(Stream firstInputStream, Stream secInputStream, Stream outputStream)

Аналогично предыдущему подходу, этот подход также позволяет объединять два PDF файла. Первые два аргумента (firstInputStream и secInputStream) предоставляют два входных PDF файла в виде потоков (поток - это массив битов/байтов), которые нужно объединить. Третий аргумент (outputStream) предоставляет потоковое представление желаемого выходного PDF файла.

Объединить два PDF файла по потокам файлов

private void button2_Click(object sender, System.EventArgs e)
{
    using (var pdf1 = new FileStream(textBox1.Text, FileMode.Open))
    {
        using (var pdf2 = new FileStream(textBox2.Text, FileMode.Open))
        {
            using (var outputStream = new FileStream(textBox4.Text, FileMode.Create))
            {
                var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
                pdfEditor.Concatenate(pdf1, pdf2, outputStream);
            }
        }
    }
}

Подход 3

  • Concatenate(Stream inputStreams[], Stream outputStream)

Если вы хотите объединить более двух PDF файлов, то этот подход будет вашим окончательным выбором. Первый аргумент (inputStreams[]) предоставляет входные PDF файлы в виде массива потоков, которые нужно объединить. Второй аргумент (outputStream) предоставляет потоковое представление желаемого выходного PDF файла.

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

private void button3_Click(object sender, System.EventArgs e)
{
    using (var pdf1 = new FileStream(textBox1.Text, FileMode.Open))
    {
        using (var pdf2 = new FileStream(textBox2.Text, FileMode.Open))
        {
            using (var pdf3 = new FileStream(textBox3.Text, FileMode.Open))
            {
                var pdfStreams = new Stream[] { pdf1, pdf2, pdf3 };
                using (var outputStream = new FileStream(textBox4.Text, FileMode.Create))
                {
                    var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
                    pdfEditor.Concatenate(pdfStreams, outputStream);
                }
            }
        }
    }
}