Adicionar marca d'água ao PDF usando C#

Aspose.PDF for .NET permite adicionar marcas d’água ao seu documento PDF usando Artefatos. Por favor, consulte este artigo para resolver sua tarefa.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

Uma marca d’água criada com o Adobe Acrobat é chamada de artefato (conforme descrito na 14.8.2.2 Conteúdo Real e Artefatos da especificação PDF). Para trabalhar com artefatos, Aspose.PDF possui duas classes: Artifact e ArtifactCollection.

Para obter todos os artefatos em uma página específica, a classe Page possui a propriedade Artifacts. Este tópico explica como trabalhar com artefatos em arquivos PDF.

Trabalhando com Artefatos

A classe Artifact contém as seguintes propriedades:

  • Artifact.Type: obtém o tipo de artefato (suporta valores da enumeração Artifact.ArtifactType onde os valores incluem Background, Layout, Page, Pagination e Undefined).
  • Artifact.Subtype: obtém o subtipo de artefato (suporta os valores da enumeração Artifact.ArtifactSubtype onde os valores incluem Background, Footer, Header, Undefined, Watermark).
  • Artifact.Contents: Obtém uma coleção de operadores internos de artefato. Seu tipo suportado é System.Collections.ICollection.
  • Artifact.Form: Obtém um XForm de um artefato (se XForm for usado). Marcas d’água, cabeçalhos e rodapés contêm XForm que mostra todo o conteúdo do artefato.
  • Artifact.Image: Obtém a imagem de um artefato (se uma imagem estiver presente, caso contrário, nulo).
  • Artifact.Text: Obtém o texto de um artefato.
  • Artifact.Rectangle: Obtém a posição de um artefato na página.
  • Artifact.Rotation: Obtém a rotação de um artefato (em graus, valor positivo indica rotação anti-horária).
  • Artifact.Opacity: Obtém a opacidade de um artefato. Os valores possíveis estão na faixa de 0…1, onde 1 é completamente opaco.

Como Adicionar Marca d’água em Arquivos PDF

O seguinte trecho de código mostra como obter cada marca d’água na primeira página de um arquivo PDF com 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");
    }
}