Объединение 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 файл и нажимаем кнопку OK. Полное имя файла с путем назначается соответствующему текстовому полю.
Аналогично, мы можем выбрать два или три входных PDF файла для конкатенации, как показано ниже:
Последнее текстовое поле (textBox4) примет путь назначения выходного PDF файла с его именем, где этот выходной файл будет создан.
Метод Concatenate()
Метод Concatenate() может быть использован тремя способами. давайте подробнее рассмотрим каждый из них:
Подход 1
- Concatenate(string firstInputFile, string secInputFile, string outputFile)
Этот подход хорош только если необходимо соединить только два PDF файла. Два первых аргумента (firstInputFile и secInputFile) предоставляют полные имена файлов с их путями хранения для двух входных PDF файлов, которые необходимо объединить. Третий аргумент (outputFile) предоставляет желаемое имя файла с путем для выходного PDF файла.
private void button1_Click(object sender, System.EventArgs e)
{
PdfFileEditor pdfEditor = new PdfFileEditor();
pdfEditor.Concatenate(textBox1.Text,textBox2.Text,textBox4.Text);
}
Подход 2
- Concatenate(System.IO.Stream firstInputStream, System.IO.Stream secInputStream, System.IO.Stream outputStream)
Похожий на вышеописанный подход, этот метод также позволяет объединить два PDF файла. Первые два аргумента (firstInputStream и secInputStream) предоставляют два входных PDF файла в виде потоков (поток — это массив битов/байтов), которые должны быть объединены. Третий аргумент (outputStream) предоставляет потоковое представление желаемого выходного PDF файла.
private void button2_Click(object sender, System.EventArgs e)
{
FileStream pdf1 = new FileStream(textBox1.Text,FileMode.Open);
FileStream pdf2 = new FileStream(textBox2.Text,FileMode.Open);
FileStream outputPDF = new FileStream(textBox4.Text,FileMode.Create);
PdfFileEditor pdfEditor = new PdfFileEditor();
pdfEditor.Concatenate(pdf1,pdf2,outputPDF);
outputPDF.Close();
}
Подход 3
- Concatenate(System.IO.Stream inputStreams[], System.IO.Stream outputStream)
Если вы хотите объединить более двух PDF файлов, то этот подход будет вашим окончательным выбором. Аргумент первый (inputStreams[]) предоставляет входные PDF-файлы в виде массива потоков, которые следует объединить. Второй аргумент (outputStream) предоставляет потоковое представление желаемого выходного PDF-файла.
private void button3_Click(object sender, System.EventArgs e)
{
FileStream pdf1 = new FileStream(textBox1.Text,FileMode.Open);
FileStream pdf2 = new FileStream(textBox2.Text,FileMode.Open);
FileStream pdf3 = new FileStream(textBox3.Text,FileMode.Open);
Stream[] pdfStreams = new Stream[]{pdf1,pdf2,pdf3};
FileStream outputPDF = new FileStream(textBox4.Text,FileMode.Create);
PdfFileEditor pdfEditor = new PdfFileEditor();
pdfEditor.Concatenate(pdfStreams,outputPDF);
outputPDF.Close();
}