
Cómo Combinar Archivos PDF Sin Adobe
Los archivos PDF (Formato de Documento Portátil) se utilizan ampliamente para compartir y presentar documentos, y hay ocasiones en las que puede necesitar dividir un PDF en varios archivos. Ya sea que desee extraer páginas específicas, dividir un documento grande en secciones más pequeñas o crear archivos individuales para cada capítulo, dividir PDFs puede ser una tarea valiosa en varios escenarios.
En este artículo, aprenderemos a dividir PDFs usando C#. C# es un lenguaje versátil y potente, y hay varias bibliotecas disponibles que facilitan relativamente la manipulación de PDFs. Exploraremos las siguientes dos bibliotecas para dividir PDFs en C#.
Cómo dividir PDF en C# con iTextSharp
- Primero, instale la biblioteca iText7.
- Cree un PdfReader desde el archivo PDF de entrada.
- Use un PdfDocument para trabajar con el contenido del PDF.
- Calcule el número de páginas para cada archivo dividido.
- Establezca valores iniciales para el rango de páginas.
- Use un bucle para procesar cada archivo dividido.
- Cree un nuevo PdfDocument para el archivo dividido actual.
- Copie las páginas del documento original al nuevo.
- Actualice los valores del rango de páginas para la siguiente iteración.
- Guarde el archivo PDF de salida completado.
- Repita hasta que se creen todos los archivos.
- Continúe el proceso para el número especificado de archivos divididos.
IronPDF

IronPDF es una poderosa biblioteca de C# diseñada para trabajar con archivos PDF. Proporciona funciones para crear, modificar y extraer contenido de documentos PDF. Los desarrolladores pueden generar PDFs desde cero, editar PDFs existentes y fusionarlos o dividirlos. Además, IronPDF sobresale en convertir contenido HTML a formato PDF, haciéndolo útil para generar informes o documentación. Con soporte para firmas digitales, características de seguridad y resultados de alta calidad, IronPDF simplifica las tareas relacionadas con PDF en aplicaciones .NET.
iTextSharp

iTextSharp (iText 7) es una biblioteca ampliamente utilizada para trabajar con archivos PDF en el marco .NET. Proporciona potentes funciones para crear, modificar y extraer contenido de documentos PDF programáticamente. Los desarrolladores pueden usar iTextSharp para agregar texto, imágenes, tablas y otros elementos gráficos a PDFs. Además, admite ensamblaje de documentos, firmas digitales y conformidad con estándares de archivo y accesibilidad. Originalmente una biblioteca Java, iTextSharp fue portado a .NET y cuenta con una comunidad activa de desarrolladores y usuarios.
Instalación de la biblioteca IronPDF
Para instalar el paquete NuGet de IronPDF usando la Consola del Administrador de Paquetes en Visual Studio, siga estos pasos:
-
En Visual Studio, vaya a Herramientas -> Administrador de Paquetes NuGet -> Consola del Administrador de Paquetes.
-
Use el siguiente comando para instalar el paquete NuGet de IronPDF:
PM > Install-Package IronPdf
Esto descargará e instalará el paquete de IronPDF junto con sus dependencias en su proyecto. Una vez completada la instalación, puede comenzar a usar IronPDF en su proyecto C# para tareas relacionadas con PDF.
Alternativamente, puede instalar IronPDF usando el Administrador de Paquetes NuGet en Visual Studio, o agregar el paquete directamente a su archivo de proyecto. Otra opción es descargar el paquete desde el sitio web oficial y agregarlo manualmente a su proyecto. Cada método proporciona una forma sencilla de integrar IronPDF en su proyecto C# para funcionalidades relacionadas con PDF.
Instalación de la biblioteca iTextSharp
Para instalar iTextSharp usando la Consola del Administrador de Paquetes en Visual Studio, puede seguir estos pasos:
-
En Visual Studio, vaya a Herramientas -> Administrador de Paquetes NuGet -> Consola del Administrador de Paquetes.
-
Use el siguiente comando para instalar el paquete NuGet de iTextSharp:
Install-Package itext7SHELL
Esto descargará e instalará el paquete de iTextSharp junto con sus dependencias en su proyecto. Una vez completada la instalación, puede comenzar a usar iTextSharp en su proyecto C# para trabajar con PDFs.
Dividir documentos PDF en C# con IronPDF
Podemos dividir un archivo PDF en varios archivos PDF utilizando IronPDF. Proporciona una forma sencilla de lograr esto. El siguiente código tomará el archivo PDF fuente como entrada y lo dividirá en varios archivos PDF.
using IronPdf;
class Program
{
static void Main(string[] args)
{
string file = "input.pdf";
// The folder to save the split PDFs
string outputFolder = "output_split";
int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
// Call the SplitPdf method to split the PDF
SplitPdfUsing IronPDF(file, outputFolder, numberOfSplitFiles);
}
static void SplitPdfUsing IronPDF(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
{
// Load the input PDF
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
// Initialize page range values
int firstPage = 1;
int lastPage = 2;
int totalPageInOneFile = sourceFile.PageCount / numberOfSplitFiles;
for (int i = 1; i <= numberOfSplitFiles; i++)
{
// Copy multiple pages into a new document
PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage, lastPage);
// Generate the output file path
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
// Save the new split PDF
newSplitPDF.SaveAs(name);
// Update page range values for the next iteration
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
Explicación del código
El propósito de este código es dividir un archivo PDF dado en varios archivos PDF más pequeños utilizando la biblioteca IronPDF. El método SplitPdfUsing IronPDF se define para lograr esta funcionalidad.
Parámetros del método
inputPdfPath: Una cadena que representa la ruta al archivo PDF de entrada (por ejemplo, "input.pdf").outputFolder: Una cadena que representa la carpeta de salida donde se guardarán los archivos PDF divididos (por ejemplo, "output_split").numberOfSplitFiles: Un entero que indica en cuántos archivos PDF más pequeños se dividirá el PDF original.
Proceso de división
Dentro del método SplitPdfUsing IronPDF:
- Se crea un objeto
PdfDocumentllamadosourceFileal cargar el PDF desde elinputPdfPathespecificado. - Se inicializan dos variables enteras,
firstPageylastPage. Estos representan el rango de páginas para dividir. totalPageInOneFilese calcula dividiendo el recuento total de páginas del PDF de origen por elnumberOfSplitFilesespecificado.- Un bucle itera desde 1 hasta
numberOfSplitFiles: - Se crea un nuevo objeto
PdfDocumentllamadonewSplitPDF. - Las páginas desde
firstPagehastalastPage(inclusive) se copian desdesourceFilehastanewSplitPDF. - El PDF resultante más pequeño se guarda con un nombre de archivo como "SplitPDF_IronPDF_1.pdf" (para la primera división) en la carpeta de salida especificada.
- Los valores
firstPageylastPagese actualizan para la siguiente iteración.
Nota
Debe reemplazar "input.pdf" por la ruta real a su archivo PDF de entrada. Asegúrese de que la biblioteca IronPDF esté correctamente instalada y referenciada en su proyecto.
Los archivos de salida se crean así:

Dividir archivos PDF en C# con iTextSharp
Ahora, utilizaremos iTextSharp para dividir nuestro documento PDF en varios archivos PDF. El siguiente código tomará el archivo fuente como entrada y dividirá ese documento PDF en múltiples archivos más pequeños.
using System;
using iText.Kernel.Pdf;
class Program
{
static void Main(string[] args)
{
string inputPath = "input.pdf";
// Output PDF files path (prefix for the generated files)
string outputPath = "output_split";
int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
// Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles);
}
static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
{
using (PdfReader reader = new PdfReader(inputPdfPath))
{
using (PdfDocument doc = new PdfDocument(reader))
{
// Calculate the number of pages for each split file
int totalPageInOneFile = doc.GetNumberOfPages() / numberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile;
for (int i = 1; i <= numberOfSplitFiles; i++)
{
// Generate the output file path
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
// Create a new document and attach a writer for the specified output file
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename)))
{
// Copy pages from the original document to the new document
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
// Update page range values for the next iteration
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
}Imports System
Imports iText.Kernel.Pdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim inputPath As String = "input.pdf"
' Output PDF files path (prefix for the generated files)
Dim outputPath As String = "output_split"
Dim numberOfSplitFiles As Integer = 3 ' Specify how many parts you want to split the PDF into
' Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles)
End Sub
Private Shared Sub SplitPdfUsingiTextSharp(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal numberOfSplitFiles As Integer)
Using reader As New PdfReader(inputPdfPath)
Using doc As New PdfDocument(reader)
' Calculate the number of pages for each split file
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim totalPageInOneFile As Integer = doc.GetNumberOfPages() / numberOfSplitFiles
Dim firstPage As Integer = 1
Dim lastPage As Integer = totalPageInOneFile
For i As Integer = 1 To numberOfSplitFiles
' Generate the output file path
Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"
' Create a new document and attach a writer for the specified output file
Using pdfDocument As New PdfDocument(New PdfWriter(filename))
' Copy pages from the original document to the new document
doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
End Using
' Update page range values for the next iteration
firstPage = lastPage + 1
lastPage += totalPageInOneFile
Next i
End Using
End Using
End Sub
End ClassExplicación del código
Este código demuestra cómo dividir un archivo PDF grande en partes más pequeñas usando iTextSharp. Cada documento PDF más pequeño contendrá una parte del documento original.
Dividir PDF con iTextSharp
- La funcionalidad principal está encapsulada en el método
SplitPdfUsingiTextSharp. - El método anterior toma tres parámetros:
inputPdfPath,outputFolderynumberOfSplitFiles.
Uso de PdfReader y PdfDocument
Dentro del método SplitPdfUsingiTextSharp:
- Se crea un objeto
PdfReaderllamadoreaderal cargar el PDF desde elinputPdfPathespecificado. - Un objeto
PdfDocumentllamadodocse inicializa utilizandoreader. - El número total de páginas del PDF de origen se divide por
numberOfSplitFilespara determinar cuántas páginas debe contener cada PDF más pequeño.
Proceso de división
Un bucle itera desde 1 hasta numberOfSplitFiles:
- Se crea un nuevo archivo PDF más pequeño con un nombre de archivo como "SplitPDF_iTextSharp_1.pdf" (para la primera división) en la carpeta de salida especificada.
- Dentro de este nuevo documento PDF (
pdfDocument), se copian las páginas del originaldoc: - Se copian
firstPagealastPage(inclusive). - El PDF más pequeño se guarda.
- Los valores
firstPageylastPagese actualizan para la siguiente iteración.
Nota
Asegúrese de que la biblioteca iTextSharp esté correctamente instalada y referenciada en su proyecto. Reemplace "input.pdf" con la ruta real a su archivo PDF de entrada.

Comparación
Para comparar los dos métodos de división utilizando iTextSharp e IronPDF, evaluemos con base en varios factores:
- Facilidad de Uso:
- iTextSharp: El método de iTextSharp implica crear un PdfReader, PdfDocument y PdfWriter. Calcula rangos de páginas y copia páginas a un documento nuevo. Este enfoque requiere entender la API de iTextSharp.
- IronPDF: El método de IronPDF implica crear un PdfDocument desde el archivo fuente, copiar páginas y guardarlas en un nuevo archivo. Tiene una API más sencilla.
- Legibilidad del Código:
- iTextSharp: El código involucra más pasos, lo que lo hace ligeramente más largo y potencialmente más complejo de leer.
- IronPDF: El código es conciso y más legible debido a menos pasos y llamadas a métodos.
- Rendimiento:
- iTextSharp: El rendimiento puede verse afectado por la repetida creación y destrucción de instancias de PdfDocument.
- IronPDF: El método implica menos pasos y ofrece un mejor rendimiento debido a una copia eficiente de páginas.
- Uso de Memoria:
- iTextSharp: Crear múltiples instancias de PdfDocument consumirá más memoria.
- IronPDF: El método es más eficiente en memoria debido a su enfoque simplificado.
Conclusión
En conclusión, tanto iTextSharp como IronPDF ofrecen soluciones robustas para dividir archivos PDF en C#, cada uno con su propio conjunto de ventajas. IronPDF se destaca por su simplicidad, legibilidad y potencialmente mejor rendimiento debido a un enfoque más directo.
Los desarrolladores que buscan un equilibrio entre versatilidad y facilidad de uso pueden encontrar IronPDF como una opción atractiva. Además, IronPDF ofrece una prueba gratis. En última instancia, la elección entre iTextSharp e IronPDF depende de los requisitos del proyecto individual y el estilo de desarrollo preferido.

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.
Related Articles


