Combinar archivos PDF usando .NET 5

Todo lo que tienes que hacer es llamar al método Concatenate de la clase PdfFileEditor y todos tus archivos PDF de entrada se concatenarán y se generará un solo archivo PDF. Vamos a crear una aplicación para practicar la concatenación de archivos PDF. Crearemos una aplicación usando Visual Studio.NET 2019.

Cómo concatenar archivos PDF de diferentes maneras

En el formulario, hay tres cuadros de texto (textBox1, textBox2, textBox3) que tienen sus respectivos enlaces (linkLabel1, linkLabel2, linkLabel3) para buscar los archivos PDF. Al hacer clic en el enlace “Buscar”, aparecerá un cuadro de diálogo de archivo de entrada (inputFileDialog1) que nos permitirá elegir los archivos PDF (que se van a concatenar).

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

Se muestra la vista de una aplicación de formulario de Windows para la demostración de la clase PdfFileEditor para la concatenación de archivos PDF.

Concatenar archivos PDF

Después de elegir el archivo PDF y hacer clic en el botón Aceptar. El nombre completo del archivo con la ruta se asigna al cuadro de texto relacionado.

Elegir el archivo PDF

De manera similar, podemos elegir dos o tres archivos PDF de entrada para concatenar, como se muestra a continuación:

Elegir dos o tres archivos PDF de entrada

El último cuadro de texto (textBox4) tomará la ruta de destino del archivo PDF de salida con su nombre donde se creará este archivo de salida.

Ruta de destino del archivo PDF de salida

Método Concatenate

Método Concatenate()

El método Concatenate() se puede usar de tres maneras. Veamos más de cerca cada una de ellas:

Enfoque 1

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

Este enfoque es bueno solo si necesitas unir solo dos archivos PDF. Los dos primeros argumentos (firstInputFile y secInputFile) proporcionan los nombres completos de los archivos con su ruta de almacenamiento de los dos archivos PDF de entrada que se van a concatenar. El tercer argumento (outputFile) proporciona el nombre de archivo deseado con la ruta del archivo PDF de salida.

Concatenar dos PDFs usando nombres de archivo

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

Enfoque 2

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

Similar al enfoque anterior, este enfoque también permite unir dos archivos PDF. Los dos primeros argumentos (firstInputStream y secInputStream) proporcionan los dos archivos PDF de entrada como flujos (un flujo es un arreglo de bits/bytes) que se van a concatenar. El tercer argumento (outputStream) proporciona la representación de flujo del archivo PDF de salida deseado.

Concatenar dos PDFs usando flujos de archivo

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);
            }
        }
    }
}

Enfoque 3

  • Concatenate(Stream inputStreams[], Stream outputStream)

Si deseas unir más de dos archivos PDF, entonces este enfoque sería tu elección definitiva. El primer argumento (inputStreams[]) proporciona los archivos PDF de entrada en forma de un arreglo de flujos que se van a concatenar. El segundo argumento (outputStream) proporciona la representación de flujo del archivo PDF de salida deseado.

Concatenar múltiples PDFs usando un arreglo de flujos

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);
                }
            }
        }
    }
}