COMPARACIóN DE PRODUCTOS

Comparación entre IronPDF e ITextPDF

Actualizado 31 de marzo, 2022
Compartir:

Introducción

PDF son las siglas de "Portable Document Format", un formato de archivo desarrollado por Adobe. Los PDF son útiles para presentar documentos que requieren formatear el texto y las imágenes que contienen. Los archivos PDF desempeñan un papel importante en el mundo moderno y se utilizan en todo tipo de sectores empresariales para fines como la facturación y la generación de documentos. Hoy en día, la generación de PDF es casi intuitiva gracias a las bibliotecas PDF disponibles en el mercado. Cuando decida utilizar una biblioteca PDF para su proyecto, es importante tener en cuenta las características y ventajas de cada una para poder seleccionar la biblioteca que mejor se adapte a usted.

En este artículo, compararemos dos de las bibliotecas PDF .NET más populares, estas son:

  • IronPDF
  • iText PDF

    Las bibliotecas IronPDF e iText PDF se utilizan para crear, leer y modificar archivos PDF en su aplicación o proyecto Microsoft .NET. Para decidir qué biblioteca es la mejor para su aplicación, vamos a comparar las características de las dos bibliotecas antes de pasar a los costes de rendimiento para convertir y manipular los PDF. Ambas bibliotecas son compatibles con Microsoft .NET Frameworks. También registraremos el tiempo de duración de cada biblioteca para su análisis.

1. Características de IronPDF

IronPDF es una potente biblioteca PDF .NET utilizada por los desarrolladores para crear, leer y modificar fácilmente archivos PDF. Internamente, IronPDF utiliza un motor Chromium e incluye muchas funciones útiles y potentes, como la conversión de archivos HTML5, JavaScript, CSS e imágenes a PDF, la adición de encabezados y pies de página personalizados y la representación de PDF exactamente como se muestran en un navegador. IronPDF es compatible con varios formatos web y net, como HTML, ASPX, Razor View y MVC. Entre las principales características de IronPDF se incluyen:

  • Creación, lectura y modificación de archivos PDF de forma intuitiva dentro del código .NET C#.
  • Generación de PDF a partir de un enlace URL de un sitio web con ajustes para gestionar credenciales de inicio de sesión de red personalizadas, User-Agents, Proxies, Cookies, cabeceras HTTP y variables de formulario para permitir el inicio de sesión detrás de formularios de inicio de sesión HTML.
  • Extracción de imágenes de documentos PDF existentes.
  • Añadir encabezados, pies de página, texto, imágenes, marcadores, marcas de agua, etc., a documentos PDF.
  • Funcionalidad para combinar y dividir fácilmente las páginas de varios documentos PDF.
  • Capacidad para convertir archivos CSS y archivos de tipo multimedia en documentos.

2. Características de iText PDF

iText PDF es una biblioteca Java de código abierto que puede convertir texto en documentos PDF. iText sigue un esquema de software con licencia AGPL. APGL es una licencia de software libre y de código abierto.

  • La biblioteca iText proporciona una API para crear documentos PDF.
  • El software iText es capaz de convertir cadenas HTML y XML en PDF.
  • Utilizando la biblioteca iText podemos añadir marcadores, números de página y marcadores a nuestros documentos PDF.
  • Con la biblioteca iText también podemos dividir un documento PDF en varios PDF o combinar varios documentos PDF en uno solo.
  • Con iText podemos editar formularios en PDF.
  • iText también se puede utilizar para crear PDF utilizando imágenes de png, jpeg y otros formatos de imagen.
  • La biblioteca iText proporciona una clase canvas que puede utilizarse para dibujar diversas formas geométricas en los documentos existentes.
  • iText tiene una función para añadir y cambiar fuentes e imágenes en documentos PDF.

3. Creación de un nuevo proyecto en Visual Studio

En este artículo, vamos a utilizar una aplicación de consola para generar documentos PDF. Para empezar, abra la aplicación Microsoft Visual Studio y seleccione "nuevo proyecto" en el menú de archivos y, a continuación, "Aplicación de consola".

Introduzca un nombre de proyecto y seleccione una ruta de archivo. A continuación, haga clic en el botón Crear. Además, seleccione el .NET Framework deseado, como se muestra en la siguiente captura de pantalla:

Microsoft Visual Studio generará ahora la estructura para la aplicación seleccionada. Si ha seleccionado la consola, Windows, y la aplicación web ahora se abrirá el archivo program.cs donde se puede introducir el código y construir / ejecutar la aplicación.

Seleccione la versión de .NET framework. En este ejemplo, vamos a utilizar .NET 5.0

A continuación, podemos añadir la biblioteca para probar el código.

4. Instalar la librería IronPDF

La biblioteca IronPDF puede descargarse e instalarse de cuatro maneras:

  • Mediante el gestor de paquetes NuGet de Visual Studio.
  • Uso de la línea de comandos de Visual Studio.
  • Descarga directa desde el sitio web de NuGet.
  • Descarga directa desde el sitio web de IronPDF.

4.1 Uso del gestor de paquetes NuGet de Visual Studio

Visual Studio proporciona la opción NuGet Package Manager para instalar el paquete directamente en la solución. La siguiente captura de pantalla muestra cómo abrir el Gestor de paquetes NuGet.

Proporciona un cuadro de búsqueda para encontrar paquetes del sitio web de NuGet. En el gestor de paquetes podemos simplemente buscar "IronPDF", como se muestra en la siguiente captura de pantalla:

En la imagen superior vemos la lista de los resultados de búsqueda relacionados. Seleccione las opciones necesarias para instalar el paquete en su sistema.

4.2 Uso de la línea de comandos de Visual Studio

En Visual Studio Tool Vaya a Herramientas-> Gestor de paquetes NuGet -> Consola del gestor de paquetes

Introduzca la siguiente línea en la pestaña de la consola del gestor de paquetes:

Install-Package IronPdf

El paquete se descargará y se instalará en el proyecto actual, listo para ser utilizado.

4.3 Descarga directa desde el sitio web de NuGet

La tercera forma es descargar el paquete NuGet directamente del sitio web.

  • Navegue hasta el enlace "https://www.nuget.org/packages/IronPdf/"
  • Seleccione la opción "descargar paquete" en el menú de la derecha.
  • Abra el paquete descargado. Se instalará automáticamente.
  • Vuelva a cargar la solución y empiece a utilizarla en su proyecto.

4.4 Descarga directa desde el sitio web de IronPDF

Haga clic en este enlace para descargar el último paquete directamente desde nuestro sitio web. Tras la descarga, sigue estos pasos para añadir el paquete a tu proyecto:

  • Haga clic con el botón derecho del ratón en el proyecto de la ventana de la solución.
  • Seleccione la opción "referencia" y busque la ubicación de la referencia descargada.
  • Haga clic en Aceptar para añadir la referencia.

5. Instalar la biblioteca iText

La biblioteca iText puede descargarse e instalarse de cuatro maneras:

  • Mediante el gestor de paquetes NuGet de Visual Studio.
  • Uso de la línea de comandos de Visual Studio.
  • Descarga directa desde el sitio web de NuGet.
  • Descarga directa desde el sitio web de iText Source.

    Los tres primeros métodos son los mismos para las bibliotecas IronPDF e iText. El único método diferente. Es importante tener en cuenta que al añadir iText a través de Visual Studio, debe instalar dos paquetes.

    En primer lugar, busque iText en el gestor de paquetes NuGet. Necesitamos instalar tanto itext7 como iText.pdfhtml. porque estos paquetes tienen sus características divididas en varios paquetes.

    Si prefiere la línea de comandos Visual, los paquetes a instalar son los siguientes:

Install-Package itext7
Install-Package itext7.pdfhtml

iText 7 es la última versión, por lo que estamos utilizando esa versión en nuestra solución.

5.1 Descarga directa desde el sitio web de iText Source

El código fuente estará disponible en GitHub aquí para iText 7.

Podemos conseguir iText 7 aquí.

Puede obtener el código fuente que contiene todos los archivos de clase relacionados con iText 7 e incluirlo en la solución como referencia.

6. Crear un PDF a partir de una URL

Tanto la biblioteca PDF como el conversor de páginas web a PDF son útiles. Veamos cómo podemos crear un archivo PDF a partir de la URL de una página web.

6.1 Utilización de IronPDF

Podemos crear fácilmente un PDF con IronPDF. Generará un archivo fuente de página web a partir de una URL y lo convertirá en un nuevo documento.

Los siguientes pasos facilitan la creación de un documento PDF.

using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa");
        Pdf.SaveAs("result.pdf");

        //  u opcionalmente:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa").SaveAs("resultado.pdf");
        }
    }
}
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa");
        Pdf.SaveAs("result.pdf");

        //  u opcionalmente:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa").SaveAs("resultado.pdf");
        }
    }
}
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
		Dim Renderer As New IronPdf.ChromePdfRenderer()
		Dim Pdf = Renderer.RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa")
		Pdf.SaveAs("result.pdf")

		'  u opcionalmente:

		Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderUrlAsPdf("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa").SaveAs("resultado.pdf")
		End Sub
	End Class
End Namespace
VB   C#

Más arriba se han incluido dos métodos para convertir la URL de una página web en un documento PDF y guardarlo como en el ejemplo anterior. El primer método consiste en crear un documento mediante la construcción de un documento PDF IronPDF, mientras que el otro método consiste en renderizar la URL y guardarla como PDF en la misma línea. Esto descarga la fuente de la página en un trozo y lo convierte en documentos para acelerar el proceso.

En el ejemplo anterior, utilizamos RenderUrlAsPdf para convertir la página web en un documento. Sólo hay que indicar el enlace y la ubicación de almacenamiento. La conversión a PDF tarda 7,3 segundos en completarse.

6.2 Utilizar iText

iText PDF también nos permite crear un documento PDF. En iText, necesitamos la función WebClient mientras necesitamos generar PDF desde la URL. que nos permite descargar la URL en una cadena y convertirla en un archivo PDF.

En iText, necesitamos diferentes clases para generar un documento PDF. PdfWriter es una clase que nos permite crear un archivo vacío en la ubicación dada y crear un objeto para esa clase. PdfDocument es también una clase que nos ayudará a leer un PDF y escribirlo en un objeto PDF-documento. PageSize es también una clase que nos ayuda a manejar la paginación del documento.

ConverterProperties es una clase que se utiliza para dar formato a la cadena de página web en el documento PDF hay diferentes para establecer el ancho de la página etc.,

HtmlConverter es una clase del namespace iText.Html2pdf. El convertidor HTML es una clase que tiene una función llamada "ConvertTopdf". Esta es una función estática que nos permite escribir la página web descargada en un archivo PDF. Pero, necesitamos pasar el objeto Pdfwriter y ConverterProperties como parámetros al convertidor HTML.

using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.StyledXmlParser.Css.Media
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
	Dim writer As New PdfWriter("itext.pdf")
			Dim pdf As New PdfDocument(writer)
			Dim pageSize As New PageSize(850, 1700)
			pdf.SetDefaultPageSize(pageSize)
			Dim properties As New ConverterProperties()
			Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
			mediaDeviceDescription.SetWidth(pageSize.GetWidth())
			properties.SetMediaDeviceDescription(mediaDeviceDescription)
			Dim strdownload As String = (New WebClient()).DownloadString("https://es.wikipedia.org/wiki/%22¡Hola,_Mundo!%22_programa")
			HtmlConverter.ConvertToPdf(strdownload, pdf, properties)
		End Sub
	End Class
End Namespace
VB   C#

Resultado:

Aquí está el PDF generado a partir de IronPDF e iText. El PDF de la izquierda se genera con IronPDF y el de la derecha con iText. A continuación se muestra el tiempo se tarda en generar el PDF.

Los resultados cambiarán en función del ancho de banda de la red.

7. Crear un PDF utilizando HTML

Tanto IronPDF como iText permiten convertir cadenas HTML en PDF. Ambas bibliotecas ofrecen una forma sencilla de hacerlo.

7.1 Utilización de IronPDF

Podemos transformar la fuente de la página web en un documento con la ayuda de IronPDF. A continuación se muestra un ejemplo de cómo convertir una cadena HTML en un documento. También tiene la capacidad de convertir cualquier elemento de etiqueta en un documento PDF.

var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf")
VB   C#

El ejemplo anterior muestra cómo utilizar RenderHtmlAsPdf para transformar una cadena HTML. Además, podemos suministrar cualquier número de cadenas HTML a la función que convierte la fuente de la página web en una cadena. Podemos guardar el documento después de recuperar la cadena utilizando la función Guardar como. Tarda 2,7 segundos en completar el proceso.

7.2 Utilizar iText

Con la ayuda de iText PDF, podemos convertir cadenas fuente de páginas web en PDF. A continuación se muestra un ejemplo de cómo crear un documento a partir de una cadena fuente de una página web. También es capaz de convertir cualquier elemento de la etiqueta en un nuevo documento.

PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
Dim writer As New PdfWriter("itext.pdf")
Dim pdf As New PdfDocument(writer)
Dim pageSize As New PageSize(850, 1700)
pdf.SetDefaultPageSize(pageSize)
Dim properties As New ConverterProperties()
Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
mediaDeviceDescription.SetWidth(pageSize.GetWidth())
properties.SetMediaDeviceDescription(mediaDeviceDescription)
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties)
VB   C#

Esto es similar a la conversión de URL a PDF. El único paso que tenemos que eliminar es el WebClient, y en su lugar, tenemos que utilizar la cadena fuente de la página web en el parámetro. Obtendrá la cadena dada y la convertirá en un nuevo documento.

Resultado:

8. Lectura de documentos PDF

Podemos leer PDF documentos utilizando IronPDF y EO.pdf.

8.1 Utilización de IronPDF

IronPDF nos ayuda a leer archivos PDF existentes. A continuación se muestra la muestra utilizada para leer PDFs utilizando IronPDF.

var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
Dim pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf")
Dim AllText As String = pdfDocument.ExtractAllText()
VB   C#

El método Fromfile se utiliza para leer un PDF de un archivo existente y transformarlo en objetos PDF-documento, como se muestra en el código anterior. Podemos leer el texto y las imágenes accesibles en la página PDF utilizando este objeto. Se tarda apenas milisegundos en completar el proceso.

8.2 Utilizar iText PDF

El software iText también nos permite leer documentos sin la ayuda de un lector externo.

using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
Using reader As New PdfReader("result.pdf")
				 text = New StringBuilder()
				Dim pdf As New PdfDocument(reader)
				Dim strategy = New LocationTextExtractionStrategy()
				Dim i As Integer = 1
				Do While i <= pdf.GetNumberOfPages()
					Dim pdfpage = pdf.GetPage(i)
					text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy))
					i += 1
				Loop
End Using
VB   C#

El código anterior muestra que podemos leer documentos utilizando el lector de PDF. Lo único que tenemos que hacer es pasar la ubicación del archivo como parámetro. El lector de PDF lee el documento y lo convierte en un objeto usando el objeto podemos leer el texto de todas las páginas para eso necesitamos usarlas para un bucle.

Resultado:

9. Dividir documentos PDF

Tanto las bibliotecas IronPDF como iText PDF permiten a los usuarios dividir las páginas en documentos separados. Ambos ofrecen también un método sencillo para conseguirlo.

9.1 Utilización de IronPDF

IronPDF nos permite dividir las páginas de un documento en documentos separados. A continuación se muestra un ejemplo de cómo dividir páginas en documentos separados.

var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged"+i.ToString()+".pdf");
}
var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged"+i.ToString()+".pdf");
}
Dim Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf")
For i As Integer = 0 To Splitdocument.PageCount - 1
	 Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged" & i.ToString() & ".pdf")
Next i
VB   C#

En el ejemplo anterior, primero cargamos un documento existente utilizando el método fromfile de la clase pdf-document. El método copypage nos permite copiar páginas de un documento existente, y el método Saveas nos permite guardar el documento en un archivo separado. Los números de página empiezan todos por cero. En consecuencia, debemos proporcionar un número de página que empiece por cero.

9.2 Utilizar iText PDF

También podemos dividir páginas en un documento PDF utilizando iText 7. Sin embargo, primero tenemos que escribir un archivo de clase independiente que herede PdfSplitter del espacio de nombres itext.kernel.Utils. Esto creará una instancia para dividir los datos PDF. He aquí un ejemplo de código:

using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Utils
Imports iText.StyledXmlParser.Css.Media

Namespace PdfConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Using pdfDoc = New PdfDocument(New PdfReader("result.pdf"))
				Dim outputDir = "Itext_{0}.pdf"
				Dim splitter = New CustomPdfSplitter(pdfDoc, outputDir)
				Dim splittedDocs = splitter.SplitByPageCount(1)
				For Each splittedDoc In splittedDocs
					splittedDoc.Close()
				Next splittedDoc
			End Using
			Console.ReadKey()
		End Sub
	End Class
	Public Class CustomPdfSplitter
		Inherits PdfSplitter

		Private dest As String
		Private partNumber As Integer = 1

		Public Sub New(ByVal pdfDocument As PdfDocument, ByVal dest As String)
			MyBase.New(pdfDocument)
			Me.dest = dest
		End Sub

		Protected Overrides Function GetNextPdfWriter(ByVal documentPageRange As PageRange) As PdfWriter
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: return new PdfWriter(String.Format(dest, partNumber++));
			Dim tempVar = New PdfWriter(String.Format(dest, partNumber))
			partNumber += 1
			Return tempVar
		End Function
	End Class
End Namespace
VB   C#

Hemos creado una clase personalizada que anula el pdfwriter y nos permite renombrar el archivo dividido usando el nombre personalizado usando el nombre de archivo original. Posteriormente, devolverá las páginas PDF a un nuevo elemento de la lista, que podrá utilizarse para guardarlas en un documento independiente.

Resultado:

Conclusión

IronPDF no renderiza HTML a PDF desde un servidor remoto. En su lugar, crea una instancia de un navegador web que cumple con los estándares reales entre bastidores. (sin necesidad de instalar software adicional). El HTML se renderiza con total precisión y en un formato vectorial apto para los más altos estándares de impresión comercial. El resultado es un PDF limpio y de alta calidad. Por lo tanto, IronPDF tiene ventaja sobre iText PDF. IronPDF es muy recomendable para codificadores pragmáticos que busquen trabajar con eficacia y eficiencia. Es abiertamente comercial, con detalles sobre licencias y precios publicados en el sitio web. Puede visitar aquí para conocer nuestras opciones de licencia para IronPDF.

iText PDF admite varios tipos de letra y sólo podemos utilizar una hoja de estilo en línea. No nos permite añadir hojas de estilo externas porque no dispone de un motor o navegador para convertir el HTML en archivos PDF. iText renderiza el HTML correctamente y con precisión, pero crea un archivo PDF de un tamaño muy grande. iText es complejo y no es adecuado para principiantes. iText dispone de una licencia comercial y otra gratuita para desarrolladores. Para obtener más información sobre la licencia iText, haga clic aquí.

IronPDF es una herramienta imprescindible para los programadores pragmáticos que desean trabajar de forma rápida y productiva. Y lo que es más importante, le ahorra tiempo. Los paquetes de licencias IronPDF proporcionan una licencia de por vida, y no hay costes continuos.

Puede descargar IronPDF desde aquí enlace.

< ANTERIOR
Comparación entre IronPDF y PDFreactor
SIGUIENTE >
Comparación entre IronPDF y GemBox.Pdf

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123