Agregar marca de agua a PDF usando C#

Aspose.PDF for .NET permite agregar marcas de agua a su documento PDF utilizando Artefactos. Por favor, consulte este artículo para resolver su tarea.

El siguiente fragmento de código también trabaja con la biblioteca Aspose.PDF.Drawing.

Una marca de agua creada con Adobe Acrobat se llama un artefacto (como se describe en 14.8.2.2 Contenido Real y Artefactos de la especificación PDF). Para trabajar con artefactos, Aspose.PDF tiene dos clases: Artifact y ArtifactCollection.

Para obtener todos los artefactos en una página particular, la clase Page tiene la propiedad Artifacts. Este tema explica cómo trabajar con artefactos en archivos PDF.

Trabajando con Artefactos

La clase Artifact contiene las siguientes propiedades:

  • Artifact.Type: obtiene el tipo de artefacto (soporta valores de la enumeración Artifact.ArtifactType donde los valores incluyen Fondo, Diseño, Página, Paginación y No Definido).
  • Artifact.Subtype: obtiene el subtipo de artefacto (soporta los valores de la enumeración Artifact.ArtifactSubtype donde los valores incluyen Fondo, Pie de página, Encabezado, No Definido, Marca de agua).
  • Artifact.Contents: Obtiene una colección de operadores internos del artefacto. Su tipo soportado es System.Collections.ICollection.
  • Artifact.Form: Obtiene un XForm del artefacto (si se utiliza XForm). Las marcas de agua, encabezados y pies de página contienen XForm que muestra todos los contenidos del artefacto.
  • Artifact.Image: Obtiene la imagen de un artefacto (si hay una imagen presente, de lo contrario, null).
  • Artifact.Text: Obtiene el texto de un artefacto.
  • Artifact.Rectangle: Obtiene la posición de un artefacto en la página.
  • Artifact.Rotation: Obtiene la rotación de un artefacto (en grados, un valor positivo indica rotación en sentido contrario a las agujas del reloj).
  • Artifact.Opacity: Obtiene la opacidad de un artefacto. Los valores posibles están en el rango de 0…1, donde 1 es completamente opaco.

Cómo Agregar Marca de Agua en Archivos PDF

El siguiente fragmento de código muestra cómo obtener cada marca de agua en la primera página de un archivo PDF con C#.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddWatermarks()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_StampsWatermarks();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "AddWatermarksInput.pdf"))
    {
        // Create a new watermark artifact
        var artifact = new Aspose.Pdf.WatermarkArtifact();
        artifact.SetTextAndState(
            "WATERMARK",
            new Aspose.Pdf.Text.TextState()
            {
                FontSize = 72,
                ForegroundColor = Aspose.Pdf.Color.Blue,
                Font = Aspose.Pdf.Text.FontRepository.FindFont("Courier")
            });
        // Set watermark properties
        artifact.ArtifactHorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
        artifact.ArtifactVerticalAlignment = Aspose.Pdf.VerticalAlignment.Center;
        artifact.Rotation = 45;
        artifact.Opacity = 0.5;
        artifact.IsBackground = true;
        // Add watermark artifact to the first page
        document.Pages[1].Artifacts.Add(artifact);
        // Save PDF document
        document.Save(dataDir + "AddWatermarks_out.pdf");
    }
}