COMPARACIóN DE PRODUCTOS

Comparación de ejemplos y tutoriales de HTML a PDF de PDFSharp

Publicado en 11 de agosto, 2024
Compartir:

Introducción

Cuando se trata de gestionar documentos PDF en .NET, los desarrolladores tienen una gran variedad de bibliotecas entre las que elegir, cada una de las cuales ofrece funciones y capacidades únicas. Entre ellas,IronPDF y PDFsharp destacan como opciones destacadas, que responden a diferentes necesidades y preferencias.

En este artículo, vamos a echar un vistazo más de cerca a las diversas características que estas bibliotecas tienen que ofrecer, junto con su respectivo apoyo, precios, documentación y compatibilidad.

Visión general de IronPDF y PDFsharp

IronPDF, una potente biblioteca PDF para .NET, permite a los desarrolladores crear, editar y extraer contenido PDF fácilmente. Los usuarios pueden utilizar IronPDF para convertir diversos formatos, como HTML, ASPX, MVC e imágenes, en documentos PDF. IronPDF dispone de varias funciones, como edición de texto, manipulación de imágenes y cambios de metadatos, marcas de agua y cifrado de archivos PDF, entre otras. Se sabe que tiene una interfaz fácil de usar junto con un impresionante conjunto de funciones que facilitan al desarrollador el trabajo con documentos PDF.

PDFsharp es una biblioteca de código abierto basada en .NET que se centra en la generación dinámica de documentos PDF. Este producto está implementado íntegramente en C# y permite dibujar texto, gráficos e imágenes. También permite realizar operaciones de modificación, como fusionar o dividir archivos PDF existentes. PDFsharp es adecuado para cualquiera que busque una biblioteca básica para manipular archivos PDF sencillos en lugar de algo con muchas funciones adicionales.

Compatibilidad multiplataforma

Tanto IronPDF como PDFsharp funcionan en el entorno .NET, PDFsharp, a partir de la versión 6.1, es compatible con .NET Framework 4.7.2 o superior, .NET Standard 2.0 y .NET 6 o versiones superiores y puede funcionar en plataformas compatibles con .NET, como Linux y macOS, además de Windows.

Explorar la compatibilidad de la plataforma IronPDF para aprender cómo soporta la compatibilidad de plataforma más reciente con varias versiones de .NET, lo que permite a los desarrolladores trabajar en entornos de aplicaciones como Windows, Linux, Mac, Azure, Docker y AWS, garantizando así la compatibilidad universal con muchos sistemas operativos y entornos de desarrollo.

IronPDF:

  • Versiones .NET:

    • (C#, VB.NET, F#)

    • .NET Core(8, 7, 6, 5 y 3.1+.)

    • .NET Standard(2.0+)
  • .NET Framework(4.6.2+)
  • Tipos de proyectos .NET: Funciona con tipos de proyectos como Blazor, MAUI, WPF, aplicaciones de consola, etc
  • Entornos de aplicación: IronPDF funciona en entornos de aplicación como Windows, Linux, Mac, Docker, Azure y AWS
  • **Trabaja con IDEs como Microsoft Visual Studio y JetBrains Rider & ReSharper

PDFsharp

  • Versiones .NET:

    • .NET Framework(4.7.2+)

    • .NET Standard(2.0+)
  • .NET 6+
  • Tipos de proyectos .NET: Puede trabajar con tipos de proyectos y tecnologías como Blazor, MAUI, y ASP.NET
  • Entornos de aplicación: PDFsharp admite proyectos que funcionan en Windows, macOS y Linux.

Comparación de funciones: IronPDF frente a PDFsharp

Explorar las características de IronPDF que ofrece diversas funciones para trabajar con archivos PDF, como generar, modificar y extraer contenido de PDF, convertir HTML, ASPX, MVC e imágenes a formatos PDF y editar texto, imágenes y metadatos; aplique una marca de agua a sus páginas PDF o cifre el archivo PDF.

Por otro lado, PDFsharp se centra en la creación y manipulación de documentos PDF; permite dibujar líneas de texto o párrafos en la página o insertar gráficos como rectángulos y círculos en las páginas.

IronPDF

  • Conversión de HTML a PDF: IronPDF es compatible con los modernos estándares web(CSS3, HTML5, JavaScript)que permite crear documentos PDF de alta fidelidad.
  • Cifrado de PDF: Los usuarios pueden utilizar las potentes herramientas de cifrado de IronPDF para cifrar y descifrar archivos PDF, añadiendo una capa adicional de seguridad a sus archivos PDF.
  • Edición de PDF: La biblioteca IronPDF incluye funciones para combinar, dividir, formatear y modificar archivos PDF existentes.
  • Firmas digitales para archivos PDF: IronPDF permite a los usuarios firmar digitalmente sus archivos PDF.
  • Marcas de agua: Aplique fácilmente marcas de agua de texto e imagen a archivos PDF; aproveche su uso de HTML/CSS para obtener un control total sobre el proceso.
  • Estampado PDF: Estampe imágenes y texto en sus documentos PDF con IronPDF.

PDFsharp:

  • Crear PDFs: PDFsharp puede crear y generar archivos PDF desde cualquier lenguaje .NET
  • Manipulación de PDF: Modificar, fusionar y dividir PDFs
  • Dibujar gráficos en su archivo PDF: PDFsharp ofrece la posibilidad de dibujar formas, líneas e imágenes en su documento PDF
  • Cifrado: Cifre sus archivos PDF con la herramienta de cifrado de PDFsharp

Comparación de funciones entre IronPDF y PDFsharp

Convertir HTML a PDF

En diversos lugares y entornos de trabajo, convertirHTML a PDF con IronPDF es una tarea sencilla pero necesaria; la comparación entre IronPDF y PDFsharp en este proceso se ilustra en los siguientes ejemplos de código.

IronPDF:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
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 a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
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 a HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
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")
VB   C#

PDFsharp:

PDFsharp, por sí solo, no puede gestionar la conversión de HTML a PDF; en cambio, requiere la librería HtmlRenderer.PdfSharp para llevar a cabo esta tarea. Este renderizador HTML puede manejar la conversión de HTML a PDF utilizando código de renderizado estático.

using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

static void Main(string[] args)
{
    string html = @"<h1>Hello World</h1>";
    PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
    const string filename = "HtmlToPdfExample.pdf";
    pdf.Save(filename);
}
using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

static void Main(string[] args)
{
    string html = @"<h1>Hello World</h1>";
    PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
    const string filename = "HtmlToPdfExample.pdf";
    pdf.Save(filename);
}
Imports System.IO
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp

Shared Sub Main(ByVal args() As String)
	Dim html As String = "<h1>Hello World</h1>"
	Dim pdf As PdfDocument = PdfGenerator.GeneratePdf(html, PageSize.A4)
	Const filename As String = "HtmlToPdfExample.pdf"
	pdf.Save(filename)
End Sub
VB   C#

IronPDF ofrece una forma cómoda y sencilla de convertir código HTML, fragmentos HTML o plantillas HTML en formato PDF, además de permitir a los usuarios tener un gran control. IronPDF es compatible con los estándares web modernos y puede crear archivos PDF fieles a la página web de origen.

Por otra parte, PDFsharp no admite actualmente la conversión de HTML a PDF, ni la posibilidad de analizar archivos HTML; en su lugar, se puede utilizar la biblioteca HtmlRenderer.PdfSharp junto con PDFsharp para completar esta tarea.

Redactar texto en archivos PDF

A veces, los usuarios pueden quererredactar texto en archivos PDF con IronPDF especialmente cuando se trabaja con información privada o sensible.

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
VB   C#

PDFsharp:

PDFsharp no ofrece actualmente ninguna funcionalidad integrada para redactar contenido PDF; sin embargo, como la redacción implica eliminar u ocultar información sensible de forma permanente, podría intentar conseguir resultados similares utilizando las herramientas de dibujo gráfico de PDFsharp para dibujar manualmente sobre el contenido que desea redactar. He aquí un ejemplo:

using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

namespace PdfRedactionExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load an existing PDF document
            PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
            // Get the first page of the document
            PdfPage page = document.Pages[0];
            // Create a graphics object to write on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define the area to redact (for example, a rectangle covering text)
            XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
            // Fill the redaction area with a black rectangle
            gfx.DrawRectangle(XBrushes.Black, redactRect);
            // Save the modified document
            document.Save("output.pdf");
            // Optionally, close the document
            document.Close();
        }
    }
}
using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

namespace PdfRedactionExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load an existing PDF document
            PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
            // Get the first page of the document
            PdfPage page = document.Pages[0];
            // Create a graphics object to write on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define the area to redact (for example, a rectangle covering text)
            XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
            // Fill the redaction area with a black rectangle
            gfx.DrawRectangle(XBrushes.Black, redactRect);
            // Save the modified document
            document.Save("output.pdf");
            // Optionally, close the document
            document.Close();
        }
    }
}
Imports System
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Namespace PdfRedactionExample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load an existing PDF document
			Dim document As PdfDocument = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify)
			' Get the first page of the document
			Dim page As PdfPage = document.Pages(0)
			' Create a graphics object to write on the page
			Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
			' Define the area to redact (for example, a rectangle covering text)
			Dim redactRect As New XRect(100, 100, 200, 50) ' Adjust coordinates and size as needed
			' Fill the redaction area with a black rectangle
			gfx.DrawRectangle(XBrushes.Black, redactRect)
			' Save the modified document
			document.Save("output.pdf")
			' Optionally, close the document
			document.Close()
		End Sub
	End Class
End Namespace
VB   C#

Cuando se trata de redactar contenido en archivos PDF, IronPDF proporciona un método sencillo para redactar texto directamente de documentos PDF. Los usuarios pueden especificar fácilmente el texto que debe redactarse en todas las páginas, y su API intuitiva y concisa permite realizar la tarea de forma rápida y eficaz.

por otra parte, PDFsharp** no admite actualmente funciones de redacción integradas. Sin embargo, los usuarios pueden aprovechar sus capacidades de dibujo gráfico para superponer manualmente contenidos para su redacción, aunque este enfoque requiere más intervención manual y personalización.

Firmar digitalmente archivos PDF

Si necesitafirmar digitalmente documentos PDF con IronPDFademás, la traducción puede llevar mucho tiempo. Una forma de ahorrar parte de ese tiempo es hacerlo mediante programación. En los siguientes ejemplos de código, compararemos cómo funciona la firma de documentos entre IronPDF y PDFsharp.

IronPDF:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// 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
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// 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
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' 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
Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

PDFsharp:

PDFsharp no tiene soporte integrado para la firma digital de archivos PDF, sino que depende de bibliotecas externas como iTextSharp para completar esta tarea.

La firma digital de documentos PDF mediante programación puede simplificar enormemente los flujos de trabajo. IronPDF tiene soporte incorporado para firmas digitales que hace que el proceso sea directo y sencillo, necesitando sólo unas pocas líneas de código para completar la tarea. Sin embargo, PDFsharp no viene con capacidades de firma digital incorporadas, por lo que se necesitarían bibliotecas de terceros como iTextSharp, lo que complica aún más la implementación.

Aplicar marcas de agua en PDF

Cuando se trate de documentos privados, protección de derechos de autor, marcas o cualquier otra tarea que implique registros sensibles; la capacidad de aplicar y personalizarmarcas de agua con IronPDF en archivos PDF puede ser muy útil. En este artículo comparamos IronPDF y PDFsharp a la hora de añadir marcas de agua en un documento PDF.

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")
VB   C#

PDFsharp:

using PdfSharp.Pdf;
using PdfSharp.Drawing;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);

// Save the document
document.Save("Watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);

// Save the document
document.Save("Watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private gfx As XGraphics = XGraphics.FromPdfPage(document.Pages(0))
Private font As New XFont("Verdana", 40, XFontStyle.BoldItalic)
Private brush As XBrush = New XSolidBrush(XColor.FromArgb(128, 255, 0, 0))
Private watermarkText As String = "SAMPLE"
Private textSize As XSize = gfx.MeasureString(watermarkText, font)
Private center As New XPoint((document.Pages(0).Width - textSize.Width) \ 2, (document.Pages(0).Height - textSize.Height) \ 2)
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center)

' Save the document
document.Save("Watermarked.pdf")
VB   C#

Añadir marcas de agua a documentos PDF es crucial para tareas relacionadas con la privacidad, la protección de los derechos de autor y la creación de marcas. IronPDF ofrece una API sencilla que permite a los usuarios aplicar de forma eficaz marcas de agua personalizadas mediante HTML/CSS, proporcionando flexibilidad y facilidad de implementación, al tiempo que ofrece a los usuarios un gran control sobre el proceso. Por otro lado, PDFsharp requiere un manejo más manual, ya que utiliza métodos de dibujo de gráficos y texto para superponer marcas de agua en las páginas PDF.

Conversión de archivos DOCX a PDF

Convertir distintos tipos de archivos a PDF puede ser crucial para crear archivos PDF. En este caso, nos centraremos enConversión de DOCX a PDF con IronPDF y comparar cómo funcionan IronPDF y PDFsharp para lograr esta tarea.

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")
VB   C#

PDFsharp:

Actualmente, PDFsharp no admite la conversión directa del formato de archivo DOCX a PDF. En su lugar, si los usuarios desean llevar a cabo esta tarea, tendrían que hacer uso de bibliotecas externas como DocX.

Cuando se trata de la conversión de DOCX a PDF, IronPDF ofrece un enfoque sencillo y conciso para esta tarea, con soporte directo para la conversión de DOCX a PDF a través de su DocxToPdfRenderer. Esto permite renderizar y guardar sin problemas el PDF resultante.

PDFsharp no admite de forma nativa la conversión de DOCX a PDF; los usuarios deben recurrir a bibliotecas externas como DocX para conseguir esta funcionalidad.

Estampar imágenes y texto en PDF

A veces, como cuando se aplican marcas de agua, es posible que las páginas PDF deban serestampado con texto e imágenes mediante IronPDF. En esta sección, examinaremos las capacidades de estampación de IronPDF frente a PDFsharp en un documento PDF.

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")
VB   C#

PDFsharp:

using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;

// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
 foreach (PdfPage page in document.Pages)
 {
    // Get an XGraphics object for drawing on the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Define a font and brush for stamping text
    XFont font = new XFont("Arial", 12);
    XBrush brush = XBrushes.Red;

     // Stamp text onto the page
     gfx.DrawString("Confidential", font, brush, 50, 50);

     // Stamp an image onto the page
     XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
     gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}

document.Save("StampedOutput.pdf");
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;

// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
 foreach (PdfPage page in document.Pages)
 {
    // Get an XGraphics object for drawing on the page
    XGraphics gfx = XGraphics.FromPdfPage(page);

    // Define a font and brush for stamping text
    XFont font = new XFont("Arial", 12);
    XBrush brush = XBrushes.Red;

     // Stamp text onto the page
     gfx.DrawString("Confidential", font, brush, 50, 50);

     // Stamp an image onto the page
     XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
     gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}

document.Save("StampedOutput.pdf");
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Imports System.Drawing

' Load an existing PDF document
Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
' Iterate through each page in the document
 For Each page As PdfPage In document.Pages
	' Get an XGraphics object for drawing on the page
	Dim gfx As XGraphics = XGraphics.FromPdfPage(page)

	' Define a font and brush for stamping text
	Dim font As New XFont("Arial", 12)
	Dim brush As XBrush = XBrushes.Red

	 ' Stamp text onto the page
	 gfx.DrawString("Confidential", font, brush, 50, 50)

	 ' Stamp an image onto the page
	 Dim image As XImage = XImage.FromFile("stamp.png") ' Replace with your image path
'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:
	 gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2)
 Next page

document.Save("StampedOutput.pdf")
VB   C#

IronPDF permite a los usuarios añadir texto e imágenes a documentos PDF con facilidad, manteniendo el proceso directo y sencillo. Ofrece al usuario un control total sobre todos los aspectos del proceso, especialmente para quienes estén familiarizados con HTML/CSS.

Por otro lado, PDFsharp requiere un manejo más manual con su objeto XGraphics, donde el texto y las imágenes se estampan directamente en cada página utilizando coordenadas y parámetros gráficos específicos.

Cifrar archivos PDF

Ya sea en una oficina, una escuela o una biblioteca,cifrar y descifrar documentos PDF con IronPDF forma parte de muchos entornos de trabajo. Por lo tanto, contar con un programa que pueda realizar esta función sin complicaciones puede ser esencial. Esta sección comparará cómo IronPDF y PDFsharp gestionan las tareas de encriptación de PDF.

IronPDF:

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;

// Edit file security settings
// 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;

// Edit file security settings
// 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");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' 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")
VB   C#

PDFsharp:

PDFsharp por sí solo no tiene soporte incorporado para el cifrado de PDF. Sin embargo, los usuarios pueden instalar la biblioteca PdfSharp.Pdf.IO para ayudar a realizar esta tarea.

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";

PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;

document.Save("EncryptedOutput.pdf");
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;

PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";

PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;

document.Save("EncryptedOutput.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Pdf.Security

Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private userPassword As String = "userpassword"
Private ownerPassword As String = "ownerpassword"

Private securitySettings As PdfSecuritySettings = document.SecuritySettings
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit
securitySettings.UserPassword = userPassword
securitySettings.OwnerPassword = ownerPassword
securitySettings.PermitAccessibilityExtractContent = False
securitySettings.PermitAnnotationsAndFieldsEdit = False
securitySettings.PermitAssembleDocument = False
securitySettings.PermitExtractContent = False
securitySettings.PermitFormsFill = True
securitySettings.PermitFullQualityPrint = True
securitySettings.PermitModifyDocument = True
securitySettings.PermitPrint = True

document.Save("EncryptedOutput.pdf")
VB   C#

IronPDF es una sólida herramienta con potentes funciones de cifrado que le permite cifrar fácilmente archivos PDF y gestionar la configuración de seguridad, como el acceso de sólo lectura, la restricción de copiar y pegar y el permiso de impresión. También puedes añadir protección por contraseña a los archivos encriptados y personalizar los metadatos; en resumen, IronPDF es una solución integral para la gestión segura de PDF.

PDFsharp no tiene soporte nativo para encriptación pero puede utilizar librerías de terceros como PdfSharp.Pdf.IO para realizar esta función. Podrá establecer distintos niveles de cifrado, crear contraseñas de usuario o propietario y definir permisos sobre derechos de impresión o extracción de contenidos, entre otras operaciones con documentos.

Resumen de la comparación de ejemplos de código

Pdfsharp Read Pdf 1 related to Resumen de la comparación de ejemplos de código

Precios y licencias: IronPDF frente a PDFsharp

Precios y licencias de IronPDF

Más informaciónOpciones de licencia y precios de IronPDF que incluyen diferentes niveles y características adicionales por la compra de una licencia. Los promotores también pueden comprarIronSuitelo que te da acceso a todos los productos de Iron Software al precio de dos. Si no está preparado para comprar una licencia, IronPDF le ofrece unaprueba gratuita que dura 30 días.

  • Licencias perpetuas: Ofrece una gama de licencias perpetuas en función del tamaño de su equipo, las necesidades de su proyecto y el número de ubicaciones. Cada tipo de licencia incluye asistencia por correo electrónico.
  • Licencia Lite: Esta licencia cuesta 749 $ y admite un desarrollador, una ubicación y un proyecto.
  • Licencia Plus: Con soporte para tres desarrolladores, tres ubicaciones y tres proyectos, este es el siguiente paso desde la licencia Lite y cuesta $1,499. La Licencia Plus ofrece soporte por chat y teléfono, además de soporte básico por correo electrónico.
  • Licencia profesional: Esta licencia es adecuada para equipos más grandes, con soporte para diez desarrolladores, diez ubicaciones y diez proyectos por 2.999 dólares. Ofrece los mismos canales de asistencia de contacto que los niveles anteriores, pero también ofrece asistencia de pantalla compartida.
  • Redistribución sin derechos de autor: La licencia de IronPDF también ofrece cobertura de redistribución sin derechos de autor por 1.999 dólares más
  • Soporte ininterrumpido del producto: IronPDF ofrece acceso a actualizaciones continuas del producto, mejoras de las funciones de seguridad y soporte de su equipo de ingenieros por 999 $ al año o por una única compra de 1.999 $ para una cobertura de 5 años.
  • IronSuite: Por 1.498 dólares, tendrá acceso a todos los productos de Iron Software, incluidos IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint e IronWebScraper.

    Pdfsharp Read Pdf 2 related to Precios y licencias de IronPDF

Licencias de PDFsharp

PDFsharp es una biblioteca de código abierto y de uso gratuito. Sin embargo, esto tiene el coste de disponer de funciones menos avanzadas y capaces que las que ofrecen competidores como IronPDF.

Documentación y asistencia: IronPDF frente a PDFsharp

IronPDF ofrece una amplia documentación y opciones de asistencia, lo que garantiza que los desarrolladores puedan integrar y utilizar fácilmente sus funciones.

IronPDF

  • Documentación completa: Documentación extensa y fácil de usar que cubre todas las funciones.
  • Asistencia 24/5 horas: Asistencia técnica activa disponible.
  • Videotutoriales: En YouTube hay disponibles guías de vídeo paso a paso.
  • Foro comunitario: Comunidad comprometida para apoyo adicional.
  • Actualizaciones periódicas: Actualizaciones mensuales del producto para garantizar las últimas funciones y parches de seguridad.

PDFsharp

  • Documentación: La documentación básica está disponible en el sitio web.
  • Foros: Apoyo comunitario a través de foros.
  • Soporte: No hay opciones de soporte comercial, pero dispone de un repositorio para informar de problemas

    Para obtener más información sobre la documentación y la asistencia de IronPDF, visiteDocumentación oficial de IronPDF y elIron Software YouTube Channel.

Conclusión

En conclusión, a la hora de elegir entre IronPDF y PDFsharp para la gestión de documentos PDF en entornos .NET, los desarrolladores deben tener en cuenta sus necesidades específicas y los requisitos del proyecto. IronPDF destaca por su amplio conjunto de funciones, que incluyen la conversión de HTML a PDF, funciones de cifrado y una sólida compatibilidad con diversas plataformas .NET y entornos de desarrollo. Ofrece documentación exhaustiva, múltiples canales de asistencia y opciones de licencia flexibles, aunque con un coste, y puede instalarse fácilmente en su proyecto mediante el gestor de paquetes NuGet.

Por otro lado, PDFsharp, como biblioteca de código abierto, es de uso gratuito pero carece de funciones avanzadas como la compatibilidad nativa con la conversión de HTML a PDF y el cifrado de PDF. Puede requerir librerías adicionales y carece de opciones de soporte comercial, por lo que es adecuado principalmente para tareas básicas de manipulación de PDF.

Puedes probar el 0 días de prueba gratuita para consultar sus funciones disponibles.

< ANTERIOR
SpirePDF C# HTML to PDF Tutorial & Comparación de bibliotecas
SIGUIENTE >
Accusoft Prizmdoc PDF Viewer Tutorial y Comparación

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >