تعليقات إضافية باستخدام C#

كيفية إضافة تعليق توضيحي لعلامة الإدخال في ملف PDF موجود

علامة الإدخال هي رمز يشير إلى تحرير النص. علامة الإدخال هي أيضًا تعليق توضيحي للتمييز، لذلك تنبع الفئة Caret من الفئة Markup وتوفر أيضًا وظائف للحصول على خصائص علامة الإدخال أو تعيينها وإعادة تعيين تدفق مظهر علامة الإدخال.

يعمل الكود التالي أيضًا مع مكتبة Aspose.PDF.Drawing.

خطوات إنشاء التعليق التوضيحي لعلامة الإدخال:

  1. تحميل ملف PDF - جديد Document.
  2. إنشاء Caret Annotation جديد وتعيين معايير علامة الإدخال (Rectangle جديد، العنوان، الموضوع، الأعلام، اللون، العرض، أسلوب البداية وأسلوب النهاية). يُستخدم هذا التعليق التوضيحي للإشارة إلى إدخال النص.
  3. قم بإنشاء StrikeOutAnnotation جديد واضبط الإعدادات (مستطيل جديد، العنوان، اللون، نقاط QuadPoints جديدة ونقاط جديدة، الموضوع، InReplyTo، ReplyType).
  4. بعد ذلك يمكننا إضافة التعليقات التوضيحية إلى الصفحة.

يوضح مقتطف الكود التالي كيفية إضافة تعليق توضيحي Caret إلى ملف PDF:

using Aspose.Pdf.Annotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Aspose.Pdf.Examples.Advanced
{
    class ExampleCaretAnnotation
    {
        // مسار الدليل الخاص بالمستندات.
        private const string _dataDir = "..\\..\\..\\..\\Samples";
        public static void AddCaretAnnotation()
        {
            // تحميل ملف PDF
            Document document = new Document(System.IO.Path.Combine(_dataDir, "sample.pdf"));
            // يُستخدم هذا التعليق التوضيحي للإشارة إلى إدخال النص
            var caretAnnotation1 = new CaretAnnotation(document.Pages[1], new Rectangle(299.988, 713.664, 308.708, 720.769))
            {
                Title = "مستخدم Aspose",
                Subject = "نص مدخل 1",
                Flags = AnnotationFlags.Print,
                Color = Color.Blue
            };
            // يُستخدم هذا التعليق التوضيحي للإشارة إلى استبدال النص
            var caretAnnotation2 = new CaretAnnotation(document.Pages[1], new Rectangle(361.246, 727.908, 370.081, 735.107))
            {
                Flags = AnnotationFlags.Print,
                Subject = "نص مدخل 2",
                Title = "مستخدم Aspose",
                Color = Color.Blue
            };

            var strikeOutAnnotation = new StrikeOutAnnotation(document.Pages[1],
                new Rectangle(318.407, 727.826, 368.916, 740.098))
            {
                Color = Color.Blue,
                QuadPoints = new[] {
                new Point(321.66, 739.416),
                new Point(365.664, 739.416),
                new Point(321.66, 728.508),
                new Point(365.664, 728.508)
            },
                Subject = "شطب",
                InReplyTo = caretAnnotation2,
                ReplyType = ReplyType.Group
            };

            document.Pages[1].Annotations.Add(caretAnnotation1);
            document.Pages[1].Annotations.Add(caretAnnotation2);
            document.Pages[1].Annotations.Add(strikeOutAnnotation);

            document.Save(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
        }

الحصول على تعليق التأشير

الرجاء محاولة استخدام مقتطف الكود التالي للحصول على تعليق التأشير في مستند PDF

public static void GetCaretAnnotation()
{
    // تحميل ملف PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
    var caretAnnotations = document.Pages[1].Annotations
        .Where(a => a.AnnotationType == AnnotationType.Caret)
        .Cast<CaretAnnotation>();
    foreach (var ca in caretAnnotations)
    {
        Console.WriteLine($"{ca.Rect}");
    }
}

حذف تعليق التأشير

يظهر مقتطف الكود التالي كيفية حذف تعليق التأشير من ملف PDF.

public static void DeleteCaretAnnotation()
{
    // تحميل ملف PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
    var caretAnnotations = document.Pages[1].Annotations
        .Where(a => a.AnnotationType == AnnotationType.Caret)
        .Cast<CaretAnnotation>();

    foreach (var ca in caretAnnotations)
    {
        document.Pages[1].Annotations.Delete(ca);
    }
    document.Save(System.IO.Path.Combine(_dataDir, "sample_caret_del.pdf"));
}

حذف منطقة معينة من الصفحة باستخدام تعليق توضيحي للحذف في Aspose.PDF لـ .NET

Aspose.PDF لـ .NET يدعم ميزة إضافة والتManipulate Annotations في ملف PDF موجود. مؤخراً، نشر بعض عملائنا طلبًا لحذف (إزالة النص، الصورة، إلخ من) منطقة معينة من صفحة وثيقة PDF. لتلبية هذا المطلب، توفر فئة تسمى RedactionAnnotation، والتي يمكن استخدامها لحذف مناطق معينة من الصفحة أو يمكن استخدامها لManipulate Annotations الحذف الموجودة وحذفها (أي تسطيح التعليق التوضيحي وإزالة النص تحته).

// للحصول على أمثلة كاملة وملفات البيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// المسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

// فتح المستند
Document doc = new Document(dataDir + "input.pdf");

// إنشاء مثيل RedactionAnnotation لمنطقة صفحة معينة
RedactionAnnotation annot = new RedactionAnnotation(doc.Pages[1], new Aspose.Pdf.Rectangle(200, 500, 300, 600));
annot.FillColor = Aspose.Pdf.Color.Green;
annot.BorderColor = Aspose.Pdf.Color.Yellow;
annot.Color = Aspose.Pdf.Color.Blue;
// النص المطبوع على التعليق التوضيحي للحذف
annot.OverlayText = "REDACTED";
annot.TextAlignment = Aspose.Pdf.HorizontalAlignment.Center;
// تكرار النص التغطي على التعليق التوضيحي للحذف
annot.Repeat = true;
// إضافة التعليق التوضيحي إلى مجموعة التعليقات التوضيحية للصفحة الأولى
doc.Pages[1].Annotations.Add(annot);
// تسطيح التعليق التوضيحي وحذف محتويات الصفحة (أي إزالة النص والصورة
// تحت التعليق التوضيحي المحذوف)
annot.Redact();
dataDir = dataDir + "RedactPage_out.pdf";
doc.Save(dataDir);

نهج الواجهات

مساحة الاسم Aspose.PDF.Facades تحتوي أيضًا على فئة تُسمى PdfAnnotationEditor التي توفر ميزة التعامل مع التعليقات التوضيحية الموجودة داخل ملف PDF. تحتوي هذه الفئة على طريقة تُسمى RedactArea(..) التي توفر القدرة على إزالة مناطق معينة من الصفحة.

// للحصول على أمثلة كاملة وملفات البيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

Aspose.Pdf.Facades.PdfAnnotationEditor editor = new Aspose.Pdf.Facades.PdfAnnotationEditor();
// إخفاء منطقة معينة من الصفحة
editor.RedactArea(1, new Aspose.Pdf.Rectangle(100, 100, 20, 70), System.Drawing.Color.White);
editor.BindPdf(dataDir + "input.pdf");
editor.Save(dataDir + "FacadesApproach_out.pdf");