Annotations adhésives PDF en utilisant C#

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Ajouter une annotation de filigrane

Une annotation de filigrane doit être utilisée pour représenter des graphiques qui doivent être imprimés à une taille et une position fixes sur une page, indépendamment des dimensions de la page imprimée.

Vous pouvez ajouter un texte de filigrane en utilisant WatermarkAnnotation à une position spécifique de la page PDF. L’opacité du filigrane peut également être contrôlée en utilisant la propriété d’opacité.

Veuillez vérifier le code suivant pour ajouter WatermarkAnnotation.

 //Charger un document
Aspose.PDF.Document doc = new Aspose.PDF.Document("source.pdf");

//Charger l'objet Page pour ajouter l'annotation
Page page = doc.Pages[1];

//Créer une annotation
WatermarkAnnotation wa = new WatermarkAnnotation(page, new Aspose.PDF.Rectangle(100, 500, 400, 600));

//Ajouter l'annotation à la collection d'annotations de la page
page.Annotations.Add(wa);

//Créer un TextState pour les paramètres de police
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;

//Définir le niveau d'opacité du texte de l'annotation

wa.Opacity = 0.5;
//Ajouter du texte dans l'annotation

wa.SetTextAndState(new string[] { "HELLO", "Ligne 1", "Ligne 2" }, ts);

//Sauvegarder le document
doc.Save("Output.pdf");

Ajouter une référence d’une seule image plusieurs fois dans un document PDF

Parfois, nous avons la nécessité d’utiliser la même image plusieurs fois dans un document PDF. Ajouter une nouvelle instance augmente la taille du document PDF résultant. Nous avons ajouté une nouvelle méthode XImageCollection.Add(XImage) dans Aspose.PDF pour .NET 17.1.0. Cette méthode permet d’ajouter une référence au même objet PDF que l’image originale pour optimiser la taille du document 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");
}