C#/VB.NET: Adicionar marcas d'água de imagem ao PDF

2023-08-24 09:04:44 zaki zou

Instalado via NuGet

PM> Install-Package Spire.PDF

Links Relacionados

Uma marca d'água de imagem geralmente é um logotipo ou sinal que aparece no fundo de documentos digitais, indicando o proprietário dos direitos autorais do conteúdo. Colocar uma marca d'água em seu documento PDF com uma imagem pode impedir que seus dados sejam reutilizados ou modificados. Este artigo demonstra como adicione uma marca d'água de imagem a PDF em C# e VB.NET usando Spire.PDF for .NET.

Instalar o Spire.PDF for .NET

Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.PDF for.NET como referências em seu projeto .NET. Os arquivos DLLs podem ser baixados deste link ou instalados via NuGet.

  • Package Manager
PM> Install-Package Spire.PDF 

Adicionar uma marca d'água de imagem ao PDF

A seguir estão as principais etapas para adicionar uma marca d'água de imagem a um documento PDF.

  • Crie um objeto PdfDocument e carregue um arquivo PDF de amostra usando o método PdfDocument.LoadFromFile().
  • Carregue um arquivo de imagem usando o método Image.FromFile().
  • Percorra as páginas do documento e obtenha a página específica por meio da propriedade PdfDocument.Pages[].
  • Defina a imagem como plano de fundo/imagem de marca d'água da página atual por meio da propriedade PdfPageBase.BackgroundImage. Defina a posição e o tamanho da imagem por meio da propriedade PdfPageBase.BackgroundRegion.
  • Salve o documento em um arquivo PDF diferente usando o método PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System.Drawing;
    
    namespace AddImageWatermark
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument document = new PdfDocument();
    
                //Load a sample PDF document
                document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
    
                //Load an image
                Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png");
    
                //Get the image width and height
                int imgWidth = image.Width;
                int imgHeight = image.Height;
    
                //Loop through the pages
                for (int i = 0; i < document.Pages.Count; i++)
                {
                    //Get the page width and height
                    float pageWidth = document.Pages[i].ActualSize.Width;
                    float pageHeight = document.Pages[i].ActualSize.Height;
    
                    //Set the background opacity
                    document.Pages[i].BackgroudOpacity = 0.3f;
    
                    //Set the background image of current page
                    document.Pages[i].BackgroundImage = image;
    
                    //Position the background image at the center of the page
                    Rectangle rect = new Rectangle((int)(pageWidth - imgWidth) / 2, (int)(pageHeight - imgHeight) / 2, imgWidth, imgHeight);
                    document.Pages[i].BackgroundRegion = rect;
                }
    
                //Save the document to file
                document.SaveToFile("AddImageWatermark.pdf");
                document.Close();
            }
        }
    }
Imports Spire.Pdf
    Imports System.Drawing
    
    Namespace AddImageWatermark
        Class Program
            Shared  Sub Main(ByVal args() As String)
                'Create a PdfDocument object
                Dim document As PdfDocument =  New PdfDocument()
    
                'Load a sample PDF document
                document.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
    
                'Load an image
                Dim image As Image =  Image.FromFile("C:\Users\Administrator\Desktop\logo.png")
    
                'Get the image width and height
                Dim imgWidth As Integer =  image.Width
                Dim imgHeight As Integer =  image.Height
    
                'Loop through the pages
                Dim i As Integer
                For  i = 0 To  document.Pages.Count- 1  Step  i + 1
                    'Get the page width and height
                    Dim pageWidth As single =  document.Pages(i).ActualSize.Width
                    Dim pageHeight As single =  document.Pages(i).ActualSize.Height
    
                    'Set the background opacity
                    document.Pages(i).BackgroudOpacity = 0.3f
    
                    'Set the background image of current page
                    document.Pages(i).BackgroundImage = image
    
                    'Position the background image at the center of the page
                    Dim rect As Rectangle =  New Rectangle(CType((pageWidth - imgWidth) / 2,(Integer)(pageHeight - imgHeight) / 2,imgWidth,imgHeight, Integer))
                    document.Pages(i).BackgroundRegion = rect
                Next
    
                'Save the document to file
                document.SaveToFile("AddImageWatermark.pdf")
                document.Close()
            End Sub
        End Class
    End Namespace

C#/VB.NET: Add Image Watermarks to PDF

Solicitar uma licença temporária

Se você deseja remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de teste de 30 dias para você mesmo.

Veja também