Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Elegir la biblioteca PDF que mejor se adapte a sus necesidades puede ser una tarea desalentadora con el creciente número de herramientas en Internet para trabajar con archivos PDF(Formato de documento portátil). Así pues, hoy vamos a echarte una mano analizando dos herramientas PDF diferentes,IronPDF y QuestPDF.
IronPDF es una completa biblioteca .NET conocida por su versatilidad a la hora de crear, editar y procesar documentos PDF. Con una amplia gama de funciones, como la conversión de HTML a PDF, la seguridad de los documentos, los formularios interactivos y mucho más, IronPDF será un complemento inestimable para su kit de herramientas de desarrollador.
QuestPDF es una biblioteca .NET de código abierto centrada en proporcionar un enfoque de generación de PDF fácil de usar y basado únicamente en código. QuestPDF es ideal si prefiere un flujo de trabajo sencillo, racionalizado y centrado en el código, sin necesidad de lenguajes o formatos de scripting propietarios.
IronPDF es compatible con una amplia gama de plataformas, lo que garantiza que pueda trabajar en su entorno preferido. Aquí tienes un desglose de su compatibilidad:
Versiones .NET:
(C#, VB.NET, F#)
.NET Core(8, 7, 6, 5 y 3.1+.)
QuestPDF ofrece una fuerte compatibilidad entre plataformas, lo que significa que no importa en qué plataforma esté trabajando, lo más probable es que pueda aplicar QuestPDF en su entorno de trabajo.
Versiones .NET:
.NET Core(3.1+)
IronPDF y QuestPDF ofrecen distintos conjuntos de funciones adaptadas a las diferentes necesidades de los usuarios, por lo que la elección de la biblioteca que más le convenga dependerá de lo que piense hacer con los PDF con los que trabaje. A continuación se comparan sus principales funciones:
Funciones de edición de PDF: Con IronPDF, puede editar archivos PDF con facilidad. IronPDF ofrece funciones de edición como añadir encabezados y pies de página, estampar texto e imágenes en las páginas PDF, añadir marcas de agua personalizadas al PDF, trabajar con formularios PDF y dividir o combinar archivos PDF.
Para obtener una lista de características más detallada, visitePágina de características de IronPDF.
Antes de elegir qué biblioteca PDF es la más adecuada para usted, echemos un vistazo a algunos casos de uso comunes para diferentes usos que puede tener una biblioteca PDF, comparando cómo IronPDF y QuestPDF gestionan estas tareas.
Conversión de HTML a PDF con IronPDF:
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
QuestPDF:
QuestPDF no admite de forma nativa la conversión de HTML a PDF, ya que está diseñado más para crear PDF mediante programación que para convertir otros archivos a formato PDF.
Para la conversión de contenido HTML en un documento PDF,Herramienta HTML a PDF de IronPDF es una solución sencilla y eficaz.
using IronPdf;
using System;
//Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
//The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;
//Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
//The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
QuestPDF:
Sin soporte integrado para la encriptación de PDF, los usuarios de QuestPDF recurrirán a bibliotecas externas si necesitan encriptación. Sin embargo, QuestPDF puede modificar los metadatos del PDF.
Si el cifrado de documentos o los ajustes de la configuración de seguridad son rutinarios, IronPDF, con su intuitiva herramienta de cifrado, es preferible a herramientas como QuestPDF, que carecen de amplias funciones sin bibliotecas adicionales.
Redactar contenido con IronPDF:
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
QuestPDF:
QuestPDF no soporta la redacción directamente, en su lugar, si desea redactar contenido cuando trabaje con QuestPDF, necesitará utilizar una biblioteca adicional como iTextSharp.
Con IronPDF, la redacción de contenidos es sencilla y eficaz, mientras que QuestPDF requiere bibliotecas complementarias para las tareas de redacción.
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Private sig = New PdfSignature(cert)
' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
QuestPDF:
QuestPDF no puede utilizarse para firmar digitalmente archivos PDF. En su lugar, podría crear un PDF con QuestPDF y luego utilizar una biblioteca externa para firmar digitalmente ese PDF.
Para firmas digitales simplificadas,Función de firma de IronPDF ofrece un control total y facilidad de uso, a diferencia de QuestPDF.
*aplicación de marca de agua con IronPDF***:
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
QuestPDF:
QuestPDF no puede utilizarse para añadir marcas de agua a sus archivos PDF, debido a la naturaleza simplista de esta biblioteca.
Aproveche las capacidades HTML/CSS de IronPDF para marcas de agua personalizadas, en contraste con la falta de soporte nativo de marcas de agua de QuestPDF.
Estampación de texto e imágenes en IronPDF:
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
QuestPDF:
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.Helpers;
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(12));
// Adding Header and Footer for context
page.Header()
.Text("Header Text")
.FontSize(20)
.Bold()
.AlignCenter();
page.Footer()
.Text("Footer Text")
.FontSize(12)
.AlignCenter();
// Adding main content and stamps
page.Content()
.Canvas(canvas =>
{
// Main content
canvas.DrawText("This is the main content of the page.", x =>
{
x.Translate(50, 50);
x.FontSize(12);
});
// Stamped text
canvas.DrawText("Stamped Text", x =>
{
x.Translate(200, 200); // Position the text
x.FontSize(30);
x.Bold();
x.FontColor(Colors.Red);
});
// Stamped image
canvas.DrawImage("path/to/image.png", x =>
{
x.Translate(200, 300); // Position the image
x.Width(100); // Set the width of the image
});
});
});
}).GeneratePdf("output.pdf");
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.Helpers;
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(12));
// Adding Header and Footer for context
page.Header()
.Text("Header Text")
.FontSize(20)
.Bold()
.AlignCenter();
page.Footer()
.Text("Footer Text")
.FontSize(12)
.AlignCenter();
// Adding main content and stamps
page.Content()
.Canvas(canvas =>
{
// Main content
canvas.DrawText("This is the main content of the page.", x =>
{
x.Translate(50, 50);
x.FontSize(12);
});
// Stamped text
canvas.DrawText("Stamped Text", x =>
{
x.Translate(200, 200); // Position the text
x.FontSize(30);
x.Bold();
x.FontColor(Colors.Red);
});
// Stamped image
canvas.DrawImage("path/to/image.png", x =>
{
x.Translate(200, 300); // Position the image
x.Width(100); // Set the width of the image
});
});
});
}).GeneratePdf("output.pdf");
Imports QuestPDF.Fluent
Imports QuestPDF.Infrastructure
Imports QuestPDF.Helpers
Document.Create(Sub(container)
container.Page(Sub(page)
page.Size(PageSizes.A4)
page.Margin(2, Unit.Centimetre)
page.PageColor(Colors.White)
page.DefaultTextStyle(Function(x) x.FontSize(12))
' Adding Header and Footer for context
page.Header().Text("Header Text").FontSize(20).Bold().AlignCenter()
page.Footer().Text("Footer Text").FontSize(12).AlignCenter()
' Adding main content and stamps
page.Content().Canvas(Sub(canvas)
' Main content
canvas.DrawText("This is the main content of the page.", Sub(x)
x.Translate(50, 50)
x.FontSize(12)
End Sub)
' Stamped text
canvas.DrawText("Stamped Text", Sub(x)
x.Translate(200, 200) ' Position the text
x.FontSize(30)
x.Bold()
x.FontColor(Colors.Red)
End Sub)
' Stamped image
canvas.DrawImage("path/to/image.png", Sub(x)
x.Translate(200, 300) ' Position the image
x.Width(100) ' Set the width of the image
End Sub)
End Sub)
End Sub)
End Sub).GeneratePdf("output.pdf")
Tanto IronPDF como QuestPDF permiten estampar texto e imágenes, pero el método conciso de IronPDF es más sencillo en comparación con el largo método de QuestPDF.
Conversión de DOCX a PDF con IronPDF:
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()
' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
QuestPDF:
QuestPDF no permite la conversión directa de DOCX a PDF. Para convertir un archivo DOCX en PDF con QuestPDF, se necesitan bibliotecas adicionales como Aspose.Words o Syncfusion.
Opte por IronPDF, con conversión DOCX incorporada, en lugar de QuestPDF, que carece de esta capacidad de forma nativa.
VerOpciones de licencia de IronPDF para diferentes niveles y características adicionales. Los desarrolladores también pueden adquirirAcceso a IronSuiteel precio incluye todos los productos IronSoftware por el precio de dos. IronPDF también proporciona unprueba gratuita durante 30 días.
IronSuite: 1.498 $ para acceder a todos los productos de Iron Software, incluidos IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint y IronWebScraper.
IronPDF destaca por su amplia documentación y asistencia:
Actualizaciones periódicas: Actualizaciones mensuales del producto para garantizar las últimas características y parches de seguridad.
Para más información, consulteDocumentación de IronPDF y visite la páginaCanal YouTube de IronSoftware.
Vídeos en YouTube: QuestPDF tiene una presencia cada vez mayor en YouTube, donde publica vídeos para ayudar a los desarrolladores a aprender a utilizar diferentes aspectos de la biblioteca.
QuestPDF depende de las contribuciones de la comunidad para la documentación y el soporte, que puede no ser tan extenso o estructurado en comparación con las ofertas de IronPDF.
Tanto IronPDF como QuestPDF ofrecen valiosas herramientas para la generación de PDF en .NET, atendiendo a diferentes necesidades de desarrollo. La elección de la mejor opción depende de sus necesidades y presupuesto. QuestPDF, al ser de código abierto y fácil de usar, es adecuado para desarrolladores que buscan una solución ligera y centrada en el código. Si no necesita todas las funciones adicionales que ofrece IronPDF y sólo desea una biblioteca PDF sencilla y gratuita, entonces QuestPDF puede ser la mejor opción para usted.
IronPDF destaca por su amplio conjunto de funciones, su extensa documentación y su sólido soporte, lo que lo convierte en la opción ideal para aplicaciones de nivel empresarial. Con IronPDF, ninguna tarea relacionada con PDF es demasiado grande, y hay menos posibilidades de tener que instalar bibliotecas adicionales para manejar tareas complejas de PDF.
IronPDF destaca por su amplio conjunto de funciones, su extensa documentación y su sólido soporte, lo que lo convierte en la opción ideal para aplicaciones de nivel empresarial. Con IronPDF en el kit de herramientas de su desarrollador, ninguna tarea relacionada con PDF es demasiado grande, y hay menos probabilidades de tener que instalar bibliotecas adicionales al manejar tareas PDF más complejas.
Puedes probar el 0 días de prueba gratuita para consultar sus funciones disponibles.
9 productos API .NET para sus documentos de oficina