Anotaciones adhesivas en PDF usando C#
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
Añadir Anotación de Marca de Agua
Una anotación de marca de agua debe usarse para representar gráficos que deben imprimirse a un tamaño y posición fijos en una página, independientemente de las dimensiones de la página impresa.
Puedes añadir Texto de Marca de Agua usando WatermarkAnnotation en una posición específica de la página PDF. La opacidad de la Marca de Agua también puede ser controlada usando la propiedad de opacidad.
Por favor, revisa el siguiente fragmento de código para añadir WatermarkAnnotation.
//Cargar un Documento
Aspose.PDF.Document doc = new Aspose.PDF.Document("source.pdf");
//Cargar objeto Page para añadir Anotación
Page page = doc.Pages[1];
//Crear Anotación
WatermarkAnnotation wa = new WatermarkAnnotation(page, new Aspose.PDF.Rectangle(100, 500, 400, 600));
//Añadir anotación en la colección de Anotaciones de la Página
page.Annotations.Add(wa);
//Crear TextState para configuraciones de Fuente
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;
//Establecer nivel de opacidad del Texto de la Anotación
wa.Opacity = 0.5;
//Añadir Texto en Anotación
wa.SetTextAndState(new string[] { "HELLO", "Line 1", "Line 2" }, ts);
//Guardar el Documento
doc.Save("Output.pdf");
Agregar Referencia de una Imagen Única Varias Veces en un Documento PDF
A veces tenemos el requisito de usar la misma imagen varias veces en un documento PDF. Agregar una nueva instancia aumenta el tamaño del documento PDF resultante. Hemos añadido un nuevo método XImageCollection.Add(XImage) en Aspose.PDF para .NET 17.1.0. Este método permite agregar referencia al mismo objeto PDF que la imagen original que optimiza el tamaño del 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");
}