Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
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.
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:
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:
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.
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")
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.
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")
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.
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.
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")
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.
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")
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.
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.