Una Comparación del Corte de PDF en C# entre iTextSharp e IronPDF
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.
HierroPDF

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:
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 itext7Install-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
SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(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;
}
}
}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
SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(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 SplitPdfUsingIronPDF 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 SplitPdfUsingIronPDF:
- Se crea un objeto
PdfDocumentllamadosourceFilecargando el PDF desde elinputPdfPathespecificado. - Se inicializan dos variables enteras,
firstPageylastPage. Estos representan el rango de páginas para dividir. - Se calcula
totalPageInOneFiledividiendo el conteo total de páginas del PDF fuente por elnumberOfSplitFilesespecificado. - Un bucle itera de 1 a
numberOfSplitFiles: - Se crea un nuevo objeto
PdfDocumentllamadonewSplitPDF. - Las páginas de
firstPagealastPage(inclusive) se copian desourceFileanewSplitPDF. - 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 de
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;
}
}
}
}
}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;
}
}
}
}
}Explicació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
PdfReaderllamadoreadercargando el PDF desde elinputPdfPathespecificado. - Se inicializa un objeto
PdfDocumentllamadodocusando elreader. - El número total de páginas en el PDF fuente se divide por
numberOfSplitFilespara determinar cuántas páginas debe contener cada PDF más pequeño.
Proceso de división
Un bucle itera de 1 a 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), las páginas se copian del documento originaldoc: - De
firstPagealastPage(inclusive) se copian. - El PDF más pequeño se guarda.
- Los valores de
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.
Preguntas Frecuentes
¿Cómo puedo dividir un PDF en C# manteniendo el formato original?
Puedes usar IronPDF para dividir un PDF en C# mientras preservas su formato. IronPDF proporciona una API simple que te permite cargar un PDF y especificar los rangos de páginas a dividir, asegurando que el formato original se mantenga en los PDFs resultantes.
¿Cuáles son las principales diferencias entre iTextSharp e IronPDF para dividir PDFs en C#?
Las principales diferencias radican en la facilidad de uso y el rendimiento. IronPDF ofrece una API más sencilla con menos pasos, lo que facilita dividir PDFs sin perder formato. Por otro lado, iTextSharp requiere crear múltiples instancias como PdfReader, PdfDocument y PdfWriter, lo que puede ser más complejo.
¿Puedo extraer páginas específicas de un PDF usando C#?
Sí, usando IronPDF, puedes fácilmente extraer páginas específicas de un PDF en C#. Al cargar el PDF y especificar los números de página deseados, IronPDF te permite extraer y guardar estas páginas como un nuevo documento PDF.
¿Cómo mejora IronPDF la legibilidad del código en comparación con otras bibliotecas PDF?
IronPDF mejora la legibilidad del código al ofrecer una API clara y concisa, reduciendo la necesidad de múltiples clases y objetos. Esto simplifica el código necesario para tareas de manipulación de PDF como dividir, conduciendo a un código más limpio y fácil de mantener.
¿Es posible probar la funcionalidad de división de PDF en C# antes de comprar una biblioteca?
Sí, IronPDF ofrece una prueba gratuita que permite a los desarrolladores probar su funcionalidad de división de PDF y otras características. Este período de prueba te permite evaluar sus capacidades y rendimiento antes de tomar una decisión de compra.
¿Qué factores se deben considerar al elegir una biblioteca PDF para dividir documentos?
Al seleccionar una biblioteca PDF, considera factores como facilidad de uso, simplicidad de la API, rendimiento y la capacidad de mantener el formato original del documento. IronPDF suele ser preferido por su API fácil de usar y rendimiento eficiente.
¿Cómo puedo instalar IronPDF en un proyecto de Visual Studio C#?
Para instalar IronPDF en un proyecto de Visual Studio C#, usa la Consola del Administrador de Paquetes NuGet con el comando Install-Package IronPdf. También puedes agregarlo a través de la UI del Administrador de Paquetes NuGet o descargarlo desde el sitio oficial de IronPDF.
¿Puede la división de un PDF afectar su calidad o formato?
Dividir un PDF con IronPDF asegura que la calidad y el formato del documento original se conserven. El procesamiento eficiente de IronPDF mantiene la integridad del contenido original.






