Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF (Formato de documento portátil) son muy utilizados para compartir y presentar documentos, y hay ocasiones en las que puede ser necesario 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#.
IronPDF es una potente biblioteca de C# diseñada para trabajar con archivos PDF. Ofrece funciones para creando, Modificandoy extrayendo contenido de documentos PDF. Los desarrolladores pueden generar PDF desde cero, editar PDF existentes y **fusionar o dividir ellos. 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 muy utilizada para trabajar con archivos PDF en el marco .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 IronPDF utilizando Package Manager Console en Visual Studio, siga estos pasos:
: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.
También puede instalar IronPDF mediante el gestor de paquetes NuGet de Visual Studio, o añadir el paquete directamente al archivo del proyecto. Otra opción es descargar el paquete desde la página sitio web oficial y añadirlo 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 Package Manager Console en Visual Studio, puede seguir estos pasos:
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"'
// Llame al método SplitPdf para dividir el 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++)
{
// Copiar varias páginas en un nuevo documento
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"'
// Llame al método SplitPdf para dividir el 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++)
{
// Copiar varias páginas en un nuevo documento
PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
Shared Sub Main(ByVal args() As String)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' string file = "input.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++) { PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage); string name = string.Format("{0}\SplitPDF_IronPDF_{1}.pdf", outputFolder, i); 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.
Dentro del método SplitPdfUsingIronPDF:
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";
// Ruta de los archivos PDF de salida (prefijo de los archivos generados)
string outputPath = "output_split";
int NumberOfSplitFiles = 3;
// Llame al método SplitPdf para dividir el 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 número de página
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // crear archivo de salida
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
static void Main(string [] args)
{
string inputPath = "input.pdf";
// Ruta de los archivos PDF de salida (prefijo de los archivos generados)
string outputPath = "output_split";
int NumberOfSplitFiles = 3;
// Llame al método SplitPdf para dividir el 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 número de página
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // crear archivo de salida
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
Shared Sub Main(ByVal args() As String)
Dim inputPath As String = "input.pdf"
' Ruta de los archivos PDF de salida (prefijo de los archivos generados)
Dim outputPath As String = "output_split"
Dim NumberOfSplitFiles As Integer = 3
' Llame al método SplitPdf para dividir el PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, NumberOfSplitFiles)
End Sub
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)
'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 ' int número de página
For i As Integer = 1 To NumberOfSplitFiles
Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"
Using pdfDocument As New PdfDocument(New PdfWriter(filename)) ' crear archivo de salida
'pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
End Using
firstPage = lastPage + 1
lastPage += totalPageInOneFile
Next i
End Using
End Using
End Sub
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.
Dentro del método SplitPdfUsingiTextSharp:
Un bucle itera desde 1 hasta NumberOfSplitFiles:
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:
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 busquen un equilibrio entre versatilidad y facilidad de uso pueden encontrar en IronPDF una opción convincente. Además, IronPDF ofrece un 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.
9 productos API .NET para sus documentos de oficina