تعليقات PDF اللاصقة باستخدام C#
Contents
[
Hide
]
الكود التالي يعمل أيضاً مع مكتبة Aspose.PDF.Drawing.
إضافة تعليق توضيحي للعلامة المائية
يجب استخدام التعليق التوضيحي للعلامة المائية لتمثيل الرسومات التي يجب طباعتها بحجم وموقع ثابتين على الصفحة، بغض النظر عن أبعاد الصفحة المطبوعة.
يمكنك إضافة نص العلامة المائية باستخدام WatermarkAnnotation في موقع محدد من صفحة PDF. يمكن أيضًا التحكم في شفافية العلامة المائية باستخدام خاصية الشفافية.
يرجى التحقق من الكود التالي لإضافة WatermarkAnnotation.
//تحميل وثيقة
Aspose.PDF.Document doc = new Aspose.PDF.Document("source.pdf");
//تحميل كائن الصفحة لإضافة التعليق التوضيحي
Page page = doc.Pages[1];
//إنشاء التعليق التوضيحي
WatermarkAnnotation wa = new WatermarkAnnotation(page, new Aspose.PDF.Rectangle(100, 500, 400, 600));
//إضافة التعليق التوضيحي إلى مجموعة التعليقات التوضيحية للصفحة
page.Annotations.Add(wa);
//إنشاء حالة نص لإعدادات الخط
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;
//تعيين مستوى شفافية نص التعليق التوضيحي
wa.Opacity = 0.5;
//إضافة نص في التعليق التوضيحي
wa.SetTextAndState(new string[] { "HELLO", "Line 1", "Line 2" }, ts);
//حفظ الوثيقة
doc.Save("Output.pdf");
إضافة مرجع لصورة واحدة عدة مرات في مستند PDF
أحياناً نحتاج إلى استخدام نفس الصورة عدة مرات في مستند PDF. إضافة نسخة جديدة تزيد من حجم المستند النهائي. لقد أضفنا طريقة جديدة XImageCollection.Add(XImage) في Aspose.PDF لـ .NET 17.1.0. تتيح هذه الطريقة إضافة مرجع إلى نفس كائن PDF كما في الصورة الأصلية مما يعمل على تحسين حجم مستند 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");
}