Anotações adesivas em PDF usando C#
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.
Adicionar Anotação de Marca D’água
Uma anotação de marca d’água deve ser usada para representar gráficos que devem ser impressos em um tamanho e posição fixos em uma página, independentemente das dimensões da página impressa.
Você pode adicionar Texto de Marca D’água usando WatermarkAnnotation em uma posição específica da página PDF. A opacidade da Marca D’água também pode ser controlada usando a propriedade de opacidade.
Por favor, verifique o seguinte trecho de código para adicionar WatermarkAnnotation.
//Carregar um Documento
Aspose.PDF.Document doc = new Aspose.PDF.Document("source.pdf");
//Carregar objeto Page para adicionar Anotação
Page page = doc.Pages[1];
//Criar Anotação
WatermarkAnnotation wa = new WatermarkAnnotation(page, new Aspose.PDF.Rectangle(100, 500, 400, 600));
//Adicionar anotação à coleção de Anotações da Página
page.Annotations.Add(wa);
//Criar TextState para configurações de Fonte
Aspose.PDF.Text.TextState ts = new Aspose.PDF.Text.TextState();
ts.ForegroundColor = Aspose.PDF.Color.Blue;
ts.Font = FontRepository.FindFont("Times New Roman");
ts.FontSize = 32;
//Definir nível de opacidade do Texto da Anotação
wa.Opacity = 0.5;
//Adicionar Texto na Anotação
wa.SetTextAndState(new string[] { "HELLO", "Linha 1", "Linha 2" }, ts);
//Salvar o Documento
doc.Save("Output.pdf");
Adicionar Referência de uma Única Imagem Múltiplas Vezes em um Documento PDF
Às vezes temos a necessidade de usar a mesma imagem várias vezes em um documento PDF. Adicionar uma nova instância aumenta o tamanho do documento PDF resultante. Adicionamos um novo método XImageCollection.Add(XImage) no Aspose.PDF para .NET 17.1.0. Este método permite adicionar referência ao mesmo objeto PDF que a imagem original que otimiza o tamanho do Documento PDF.
Aspose.PDF.Rectangle imageRectangle = new Aspose.PDF.Rectangle(0, 0, 30, 15);
using (Aspose.PDF.Document document = new Aspose.PDF.Document("input.pdf"))
{
using (var imageStream = File.Open("icon.png", FileMode.Open))
{
XImage image = null;
foreach (Page page in document.Pages)
{
WatermarkAnnotation annotation = new WatermarkAnnotation(page, page.Rect);
XForm form = annotation.Appearance["N"];
form.BBox = page.Rect;
string name;
if (image == null)
{
name = form.Resources.Images.Add(imageStream);
image = form.Resources.Images[name];
}
else
{
name = form.Resources.Images.Add(image);
}
form.Contents.Add(new Operator.GSave());
form.Contents.Add(new Operator.ConcatenateMatrix(new Aspose.PDF.Matrix(imageRectangle.Width, 0, 0, imageRectangle.Height, 0, 0)));
form.Contents.Add(new Operator.Do(name));
form.Contents.Add(new Operator.GRestore());
page.Annotations.Add(annotation, false);
imageRectangle = new Aspose.PDF.Rectangle(0, 0, imageRectangle.Width * 1.01, imageRectangle.Height * 1.01);
}
}
document.Save("output.pdf");
}