Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
Los archivos PDF (Formato de Documento Portátil) se utilizan ampliamente para compartir y presentar documentos, y hay ocasiones en las que puede que necesite dividir un PDF en varios archivos. Si desea extraer páginas específicas, dividir un documento grande en secciones más pequeñas o crear archivos individuales para cada capítulo, dividir PDF puede ser una tarea valiosa en varios escenarios.
En este artículo, aprenderemos a dividir archivos PDF utilizando C#. C# es un lenguaje versátil y potente, y hay varias bibliotecas disponibles que facilitan relativamente la manipulación de archivos PDF. Exploraremos las siguientes dos Bibliotecas para Dividir PDF en C#.
Instale primero la biblioteca iText7
Crear un PdfReader a partir del archivo PDF de entrada.
Utilice un PdfDocument para trabajar con el contenido del PDF.
Calcular el número de páginas de cada archivo dividido.
Establezca los valores iniciales del intervalo de páginas.
Utilice un bucle para procesar cada archivo dividido.
Crea un nuevo PdfDocument para el archivo dividido actual.
Copiar páginas del documento original al nuevo.
Actualiza los valores del rango de páginas para la siguiente iteración.
Guarde el PDF de salida finalizado.
Repetir hasta crear todos los archivos:
IronPDF es una potente biblioteca de C# diseñada para trabajar con archivos PDF. Ofrece características para crear, modificar y extraer contenido de documentos PDF. Los desarrolladores pueden generar PDFs desde cero, editar PDFs existentes y combinar o dividir los mismos. Además, IronPDF destaca en la conversión de contenidos HTML a formato PDF, por lo que resulta útil para generar informes o documentación. Con soporte para firmas digitales, funciones de seguridad y salida de alta calidad, IronPDF simplifica las tareas relacionadas con PDF en aplicaciones .NET.
iTextSharp (iText 7) es una biblioteca ampliamente utilizada para trabajar con archivos PDF en el marco de trabajo .NET. Ofrece potentes funciones para crear, modificar y extraer contenido de documentos PDF mediante programación. Los desarrolladores pueden utilizar iTextSharp para añadir texto, imágenes, tablas y otros elementos gráficos a los PDF. Además, admite el montaje de documentos, las firmas digitales y el cumplimiento de las normas de archivo y accesibilidad. iTextSharp, originalmente una biblioteca Java, fue portado a .NET y cuenta con una activa comunidad de desarrolladores y usuarios.
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 -> Gestor de paquetes NuGet -> Consola del gestor de paquetes.
:ProductInstall
Esto descargará e instalará el paquete IronPDF junto con sus dependencias en su proyecto. Una vez completada la instalación, puede empezar a utilizar IronPDF en su proyecto C# para tareas relacionadas con PDF.
Alternativamente, puede instalar IronPDF utilizando 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.
Para instalar iTextSharp utilizando el Consola del Administrador de Paquetes en Visual Studio, puedes seguir estos pasos:
En Visual Studio, vaya a Herramientas -> Gestor de paquetes NuGet -> Consola del gestor de paquetes.
Install-Package itext7
Esto descargará e instalará el paquete iTextSharp junto con sus dependencias en su proyecto. Una vez completada la instalación, puede empezar a utilizar iTextSharp en su proyecto C# para trabajar con PDF.
Podemos dividir un archivo PDF en varios archivos PDF utilizando IronPDF. Ofrece una forma sencilla de conseguirlo. El siguiente código tomará el archivo PDF de origen como entrada y lo dividirá en varios archivos PDF.
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
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);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
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);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
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 está definido para lograr esta funcionalidad.
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").
Dentro del método SplitPdfUsingIronPDF:
Se crea un objeto PdfDocument llamado sourceFile cargando el PDF desde el inputPdfPath especificado.
Se inicializan dos variables enteras, firstPage y lastPage. Representan el intervalo de páginas para la división.
totalPageInOneFile se calcula dividiendo el recuento total de páginas del PDF de origen por el NumberOfSplitFiles especificado.
Un bucle itera desde 1 hasta NumberOfSplitFiles:
Se crea un nuevo objeto PdfDocument llamado newSplitPDF.
Las páginas desde firstPage hasta lastPage (inclusive) se copian del sourceFile al newSplitPDF.
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.
Debe sustituir "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 como:
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 varios archivos más pequeños.
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;
// 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))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
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;
// 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))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
Este código muestra cómo dividir un archivo PDF grande en partes más pequeñas utilizando iTextSharp. Cada documento PDF más pequeño contendrá una parte del documento original.
La funcionalidad principal está encapsulada en el método SplitPdfUsingiTextSharp.
Dentro del método SplitPdfUsingiTextSharp:
Se crea un objeto PdfReader llamado Reader cargando el PDF desde el inputPdfPath especificado.
Se inicializa un objeto PdfDocument llamado DOC utilizando la función Reader.
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), las páginas se copian del documento original:
La primera página hasta la última página (incluidas) son copiadas.
Se guarda el PDF más pequeño.
Asegúrese de que la biblioteca iTextSharp está correctamente instalada y referenciada en su proyecto. Sustituya "input.pdf" por la ruta real a su archivo PDF de entrada.
Para comparar los dos métodos de división con iTextSharp y IronPDF, vamos a evaluarlos en función de varios factores:
Facilidad de uso:
iTextSharp: El método iTextSharp implica crear un PdfReader, PdfDocument y PdfWriter. Calcula los intervalos de páginas y las copia en un nuevo documento. Este enfoque requiere la comprensión de la API iTextSharp.
Legibilidad del Código:
iTextSharp: El código implica más pasos, lo que lo hace ligeramente más largo y potencialmente más complejo de leer.
Rendimiento:
iTextSharp: El rendimiento puede verse afectado por la creación y eliminación repetida de instancias de PdfDocument.
Uso de memoria:
iTextSharp: Crear múltiples instancias de PdfDocument consumirá más memoria.
En conclusión, tanto iTextSharp como IronPDF ofrecen soluciones sólidas para dividir archivos PDF en C#, cada una con su propio conjunto de ventajas. IronPDF destaca por su sencillez, legibilidad y rendimiento potencialmente mejor gracias 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 gratuita. En última instancia, la elección entre iTextSharp e IronPDF depende de los requisitos de cada proyecto y del estilo de desarrollo preferido.