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

كيفية إضافة إضافة المؤشر إلى ملف PDF موجود

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

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

خطوات إنشاء إضافة المؤشر:

  1. تحميل ملف PDF - new Document.
  2. إنشاء إضافة مؤشر جديدة Caret Annotation وتعيين معلمات المؤشر (new Rectangle، title، Subject، Flags، color، width، StartingStyle و EndingStyle). تُستخدم هذه الإضافة للإشارة إلى إدخال النص.
  3. إنشاء إضافة مؤشر جديدة Caret Annotation وتعيين معلمات المؤشر (new Rectangle، title، Subject، Flags، color، width، StartingStyle و EndingStyle). تُستخدم هذه الإضافة للإشارة إلى استبدال النص.
  4. إنشاء إضافة StrikeOutAnnotation جديدة وتعيين المعلمات (new Rectangle، title، color، new QuadPoints و new points، Subject، InReplyTo، ReplyType).
  5. بعد ذلك يمكننا إضافة الإضافات إلى الصفحة.

تظهر مقتطفات الكود التالية كيفية إضافة إضافة المؤشر إلى ملف PDF:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddCaretAnnotations()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "sample.pdf"))
    {
        // Create Caret Annotation for text insertion
        var caretAnnotation1 = new Aspose.Pdf.Annotations.CaretAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(299.988, 713.664, 308.708, 720.769))
        {
            Title = "Aspose User",
            Subject = "Inserted text 1",
            Flags = Aspose.Pdf.Annotations.AnnotationFlags.Print,
            Color = Aspose.Pdf.Color.Blue
        };

        // Create Caret Annotation for text replacement
        var caretAnnotation2 = new Aspose.Pdf.Annotations.CaretAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(361.246, 727.908, 370.081, 735.107))
        {
            Flags = Aspose.Pdf.Annotations.AnnotationFlags.Print,
            Subject = "Inserted text 2",
            Title = "Aspose User",
            Color = Aspose.Pdf.Color.Blue
        };

        // Create StrikeOut Annotation
        var strikeOutAnnotation = new Aspose.Pdf.Annotations.StrikeOutAnnotation(document.Pages[1],
            new Rectangle(318.407, 727.826, 368.916, 740.098))
        {
            Color = Aspose.Pdf.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 = "Cross-out",
            InReplyTo = caretAnnotation2,
            ReplyType = Aspose.Pdf.Annotations.ReplyType.Group
        };

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

        // Save PDF document
        document.Save(dataDir + "AddCaretAnnotations_out.pdf");
    }
}

الحصول على إضافة المؤشر

يرجى محاولة استخدام مقتطف الكود التالي للحصول على إضافة المؤشر في مستند PDF:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetCaretAnnotation()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "sample_caret.pdf"))
    {
        // Get Caret annotations from the first page
        var caretAnnotations = document.Pages[1].Annotations
            .Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Caret)
            .Cast<Aspose.Pdf.Annotations.CaretAnnotation>();

        // Iterate through the annotations and print their details
        foreach (var ca in caretAnnotations)
        {
            Console.WriteLine($"{ca.Rect}");
        }
    }
}

حذف إضافة المؤشر

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteCaretAnnotation()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "sample_caret.pdf"))
    {
        // Get Caret annotations from the first page
        var caretAnnotations = document.Pages[1].Annotations
            .Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Caret)
            .Cast<Aspose.Pdf.Annotations.CaretAnnotation>();

        // Delete each Caret annotation
        foreach (var ca in caretAnnotations)
        {
            document.Pages[1].Annotations.Delete(ca);
        }

        // Save PDF document after deleting annotations
        document.Save(dataDir + "DeleteCaretAnnotation_out.pdf");
    }
}

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

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RedactPage()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Create RedactionAnnotation instance for a specific page region
        var annot = new Aspose.Pdf.Annotations.RedactionAnnotation(document.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;

        // Text to be printed on the redact annotation
        annot.OverlayText = "REDACTED";
        annot.TextAlignment = Aspose.Pdf.HorizontalAlignment.Center;

        // Repeat Overlay text over the redact Annotation
        annot.Repeat = true;

        // Add annotation to the annotations collection of the first page
        document.Pages[1].Annotations.Add(annot);

        // Flattens annotation and redacts page contents (i.e., removes text and image under the redacted annotation)
        annot.Redact();

        // Save the result document
        document.Save(dataDir + "RedactPage_out.pdf");
    }
}

نهج الواجهات

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RedactPageWithFacadesApproach()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

    // Create an instance of PdfAnnotationEditor
    using (var editor = new Aspose.Pdf.Facades.PdfAnnotationEditor())
    {
        // Redact a specific page region
        editor.RedactArea(1, new Aspose.Pdf.Rectangle(100, 100, 20, 70), System.Drawing.Color.White);

        // Bind PDF document
        editor.BindPdf(dataDir + "input.pdf");

        // Save the result document
        editor.Save(dataDir + "FacadesApproach_out.pdf");
    }
}