Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
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.
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.
Versiones .NET:
(C#, VB.NET, F#)
.NET Core(8, 7, 6, 5 y 3.1+.)
Versiones .NET:
.NET Framework(4.7.2+)
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.
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")
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
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.
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")
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
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.
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")
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.
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")
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")
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.
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")
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.
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")
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")
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.
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")
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")
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.
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.
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 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.
IronPDF ofrece una amplia documentación y opciones de asistencia, lo que garantiza que los desarrolladores puedan integrar y utilizar fácilmente sus funciones.
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.
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.
9 productos API .NET para sus documentos de oficina