COMPARACIóN DE PRODUCTOS

Explore las mejores alternativas para PDFsharp Añadir marca de agua a PDF

Kannaopat Udonpant
Kannapat Udonpant
27 de marzo, 2025
Compartir:

Agregar marcas de agua a los PDFs es un requisito común para la seguridad de documentos, el branding y el control de versiones. Ya sea para marcar documentos como confidenciales, marcar informes oficiales o prevenir la reproducción no autorizada, la marca de agua es una característica esencial.

En C#, los desarrolladores tienen múltiples bibliotecas para elegir, siendo IronPDF y PDFSharp dos de las opciones más populares. Sin embargo, sus enfoques, facilidad de uso, rendimiento y estructuras de licencias difieren significativamente. Este artículo ofrece una comparación detallada entre IronPDF y PDFsharp para añadir marcas de agua a PDFs existentes, ofreciendo información sobre sus funcionalidades, procesos de implementación y capacidades de personalización.

Al final de este artículo, tendrás una comprensión clara de qué biblioteca se adapta mejor a las necesidades de tu proyecto en función de la facilidad de uso, el rendimiento y la disponibilidad de funciones.

Comprensión del marcado de agua en PDF

¿Qué es una marca de agua?

Una marca de agua es una superposición gráfica o textual en un documento que sirve como identificador, elemento disuasorio, o de marca. Las marcas de agua pueden ser visibles o invisibles, dependiendo de su propósito.

Tipos de marcas de agua

  • Marca de agua de texto – Normalmente, es una superposición semitransparente con un mensaje como "CONFIDENCIAL" o "BORRADOR".
  • Marca de agua de imagen – Un logotipo, emblema o gráfico incrustado en el documento.
  • Marca de agua transparente – Una marca de branding sutil que no obstruye la legibilidad del documento.
  • Marca de agua estampada – Una marca más prominente y audaz que garantiza visibilidad.

Casos de uso común

  • Seguridad y Protección – Evite la duplicación no autorizada marcando los documentos como propios.
  • Branding – Agregue logotipos o firmas de la empresa para mantener la coherencia de la marca en todos los documentos.
  • Control de versiones: Etiquete borradores, versiones finales o revisiones de documentos.

Visión general de IronPDF y PDFsharp

IronPDF

Imagen rota Añadir desde Pixabay, seleccionar de tus archivos o arrastrar y soltar una imagen aquí.

IronPDF es una biblioteca .NET premium y rica en características diseñada para simplificar el manejo de PDF. Es especialmente útil para desarrolladores que buscan una implementación fácil de tareas de manipulación de PDF, incluyendo la aplicación de marcas de agua.

Características Clave:

  • API simple e intuitiva que requiere un código mínimo.
  • Admite marcas de agua de texto e imagen con opciones de personalización.
  • Ofrece control de opacidad, posicionamiento y rotación para una colocación precisa.
  • Compatible con .NET 6+, .NET Core, y .NET Framework.
  • Disponible con un modelo de licencia perpetua para uso a largo plazo.
  • Capacidades adicionales incluyen anotaciones en PDF, conversión de HTML a PDF y firmas digitales.

PDFsharp

Imagen rota Añadir desde Pixabay, seleccionar de tus archivos o arrastrar y soltar una imagen aquí.

PDFsharp es una biblioteca de código abierto que permite a los desarrolladores crear, editar y manipular archivos PDF en C#. Aunque es muy flexible, la marcación de agua requiere más esfuerzo manual en comparación con IronPDF.

Características Clave:

  • Gratuito y de código abierto, lo que lo hace rentable para proyectos con presupuesto limitado.
  • Proporciona control de bajo nivel sobre las operaciones de dibujo de PDF, incluyendo tanto rutas gráficas delineadas como rutas gráficas transparentes.
  • Admite tanto marcas de agua de texto como de imagen, pero requiere código adicional para las transformaciones.
  • Funciona con .NET Framework y .NET Core (a través de PDFSharpCore).
  • Carece de funciones integradas de marca de agua de alto nivel, lo que requiere que los desarrolladores implementen manualmente características como opacidad y rotación.

Agregar una marca de agua con IronPDF

IronPDF proporciona una sencilla API que permite a los desarrolladores aplicar marcas de agua de manera eficiente con solo unas pocas líneas de código, facilitando así la simplificación de tus tareas de marcación de agua en PDF de forma eficiente, sin configuraciones complejas o manuales. La herramienta de marca de agua de IronPDF puede usar cadenas HTML/CSS para la marca de agua, como verá a continuación, brindándole control total sobre cómo aparecerá su marca de agua.

Ejemplo de marca de agua de texto

using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private Const filename As String = "existing.pdf"
Private pdf As PdfDocument = PdfDocument.FromFile(filename)
Private watermark As String = "<h1 style='color:red'>Confidential!</h1>"
pdf.ApplyWatermark(watermark)
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

Explore las mejores alternativas para PDFsharp Add Watermark to PDF: Figura 3 - Salida de marca de agua de texto

En este ejemplo de código, vemos lo fácil que es aplicar una marca de agua a sus archivos PDF existentes con IronPDF. Aquí, hemos cargado el PDF existente usando el método FromFile. Luego, creamos un formato de cadena simple para la marca de agua y la aplicamos al PDF usando ApplyWatermark. Como se puede ver en la imagen de salida, esto ha añadido una simple cadena de texto "Confidential" como una marca de agua en nuestro PDF.

Ejemplo de Marca de Agua en Imagen

using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")
Private watermark As String = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>"
pdf.ApplyWatermark(watermark, rotation:= 45, opacity:= 80)
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

Explora las mejores alternativas para PDFsharp Añadir Marca de Agua a PDF: Figura 4

Agregar una imagen como marca de agua es tan fácil como agregar texto, ya que ambos utilizan el mismo método. Al igual que en el ejemplo de texto, simplemente creamos una nueva variable de cadena de marca de agua, que contiene el contenido que queremos usar como marca de agua (en este caso nuestra imagen), y lo aplicamos como antes. Esta vez, hemos añadido una transformación de rotación personalizada y opacidad.

Este enfoque superpone una marca de agua en la imagen en una posición especificada, permitiendo una colocación y transparencia personalizadas.

Agregar una marca de agua con PDFsharp

PDFsharp requiere que los desarrolladores rendericen manualmente texto e imágenes utilizando su API de dibujo GDI+. Para marcar con agua un archivo PDF existente, cree un objeto XGraphics para dibujar y aplique el contenido deseado.

Ejemplo de marca de agua de texto

using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
    var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);
    gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
    var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
    gfx.TranslateTransform(page.Width / 2, page.Height / 2);
    gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
    var font = new XFont("Arial", 40);
    var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
    gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf.IO
Private Const filename As String = "existing.pdf"
Private document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify)
For Each page In document.Pages
	Dim gfx = XGraphics.FromPdfPage(page) ' get an XGraphics object
	gfx.TranslateTransform(page.Width \ 2, page.Height \ 2)
	gfx.RotateTransform(Math.Atan(page.Height \ page.Width)) ' Rotate for diagonal watermark
	Dim font = New XFont("Arial", 40)
	Dim brush = New XSolidBrush(XColor.FromArgb(128, XColors.Red))
	gfx.DrawString("WATERMARK", font, brush, New XPoint(0, 0)) ' Drawing beneath the existing content
Next page
document.Save("watermarked.pdf")
$vbLabelText   $csharpLabel

Imagen rota Añadir desde Pixabay, seleccionar de tus archivos o arrastrar y soltar una imagen aquí.

Esta implementación dibuja manualmente una marca de agua en cada página, lo que requiere una colocación y personalización precisas. Aunque es capaz de manejar la tarea con un resultado similar al ejemplo de IronPDF, PDFsharp requiere más código y tiene un método más complejo para manejar la aplicación de marcas de agua de texto a contenido existente o nuevos archivos PDF.

Ejemplo de Marca de Agua en Imagen

using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
    XGraphics gfx = XGraphics.FromPdfPage(page);
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
    XGraphics gfx = XGraphics.FromPdfPage(page);
    gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Private document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify)
Private watermark As XImage = XImage.FromFile("watermark.png")
For Each page In document.Pages
	Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
'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(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2)
Next page
document.Save("watermarked.pdf")
$vbLabelText   $csharpLabel

Explore las mejores alternativas para PDFsharp añadir marca de agua a PDF: Figura 6

Este método coloca una marca de agua de imagen, pero a diferencia de IronPDF, la opacidad debe manejarse por separado. Al igual que con el ejemplo de la marca de agua de texto, aplicar una marca de agua basada en imagen a un PDF existente con PDFsharp requiere una configuración más elaborada y compleja en comparación con la API simplificada de marca de agua de IronPDF.

Comparación de IronPDF y PDFsharp para la marca de agua

Facilidad de uso

  • IronPDF: Proporciona funciones de alto nivel que simplifican la aplicación de marcas de agua con un código mínimo. Abstrae operaciones complejas, lo que lo hace ideal para desarrolladores que necesitan una solución rápida y eficiente.
  • PDFSharp: Requiere implementación manual utilizando la API de gráficos, lo que aumenta la complejidad y el tiempo de desarrollo. Es más adecuado para desarrolladores que necesitan un control detallado sobre la renderización, pero que se sienten cómodos con la codificación adicional.

Rendimiento

  • IronPDF: Optimizado para el procesamiento de PDF a alta velocidad, capaz de manejar documentos grandes de manera eficiente sin degradación significativa del rendimiento.
  • PDFSharp: Aunque es ligero, puede requerir optimizaciones adicionales para manejar archivos PDF grandes. Las tareas complejas de marca de agua con múltiples transformaciones pueden llevar a un rendimiento más lento en comparación con IronPDF.

Opciones de personalización

  • IronPDF: Soporte incorporado para opacidad, rotación, posicionamiento y personalización del tamaño de fuente. Los usuarios pueden ajustar fácilmente la configuración sin profundizar en la lógica de renderizado compleja.
  • PDFSharp: Requiere codificación adicional para opacidad, efectos de transparencia y manejo de transformaciones. Aunque es potente, requiere un mayor nivel de personalización por parte del desarrollador, incluyendo el uso del formato var para tareas de renderización específicas.

Compatibilidad

  • IronPDF: Totalmente compatible con .NET 6+, .NET Core y .NET Framework, lo que lo hace adecuado para aplicaciones modernas y heredadas.
  • PDFSharp: Admite .NET Framework y .NET Core (a través de PDFSharpCore), pero puede carecer de ciertas características modernas disponibles en frameworks más nuevos.

Licencias y costes

  • IronPDF: Un producto comercial que requiere una licencia de pago pero que incluye opciones de licencia perpetua, soporte al cliente y actualizaciones continuas.
  • PDFSharp: De código abierto y gratuito, lo que lo convierte en una solución rentable para los desarrolladores que prefieren un modelo de licencia sin restricciones pero están dispuestos a gestionar su propio soporte y actualizaciones.

Conclusión

Explore las mejores alternativas para PDFsharp agregar marca de agua a PDF: Figura 7

Para los desarrolladores que necesitan una forma fácil y eficiente de agregar marcas de agua a PDFs, IronPDF es la opción superior debido a su API fácil de usar y sus características incorporadas. Sin embargo, si las restricciones presupuestarias son una preocupación y no te importa escribir código adicional, PDFSharp es una sólida alternativa de código abierto. En última instancia, la mejor elección depende de los requisitos de tu proyecto, experiencia en programación y recursos disponibles.

🚀Prueba IronPDF por ti mismo descargando la prueba gratuita y explorando cómo puede llevar tus proyectos PDF en C# al siguiente nivel hoy mismo.

Kannaopat Udonpant
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.
< ANTERIOR
Descubra las mejores alternativas para la marca de agua de QuestPDF en .NET
SIGUIENTE >
Explore las mejores alternativas para agregar imágenes a PDFs en .NET