RedactArea.cs
//
// This code is part of Document Solutions for PDF demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System.IO;
using System.Drawing;
using System.Text.RegularExpressions;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Pdf.Annotations;
using GrapeCity.Documents.Pdf.TextMap;
using GrapeCity.Documents.Pdf.AcroForms;

namespace DsPdfWeb.Demos
{
    // This sample demonstrates the use of GcPdfDocument.Redact() method.
    // It loads the PDF generated by the SlidePages sample, creates
    // a redact annotation on the first page, and applies it.
    public class RedactArea
    {
        public int CreatePDF(Stream stream)
        {
            var doc = new GcPdfDocument();
            using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "SlidePages.pdf"));
            // Load the PDF containing redact annotations (areas marked for redaction):
            doc.Load(fs);

            var redact = new RedactAnnotation()
            {
                Rect = new RectangleF(16, 16, 280, 300),
                Page = doc.Pages[0],
                OverlayText = "This content has been redacted.",
                OverlayFillColor = Color.PaleGoldenrod
            };

            // Apply the redact:
            doc.Redact(redact);

            // Done:
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}