DocumentRedactionMode Enumeration (original) (raw)

Summary

Annotations redaction mode.

Syntax

public enum DocumentRedactionMode 

public: enum class DocumentRedactionMode sealed

class DocumentRedactionMode(Enum): None = 0 Apply = 1 ApplyThenRasterize = 2

Members

Value Member Description
0 None Do not apply any annotations. Default behavior. All annotations are visible and live during viewing or converting.
1 Apply Apply the annotations and keep SVG pages.
2 ApplyThenRasterize Apply the annotations and rasterize SVG pages.

Example

using Leadtools; using Leadtools.Codecs; using Leadtools.Document.Writer; using Leadtools.Document; using Leadtools.Caching; using Leadtools.Annotations.Engine; using Leadtools.Ocr; using Leadtools.Barcode; using Leadtools.Document.Converter; public void DocumentRedactionExample() { // AnnotationsRedactionOptions redactionOptions = new AnnotationsRedactionOptions(); var cache = new FileCache(); cache.CacheDirectory = @"c:\cache-dir"; using (var documentConverter = new DocumentConverter()) { // Load a PDF filed var loadDocumentOptions = new LoadDocumentOptions(); loadDocumentOptions.Cache = cache; using (LEADDocument document = DocumentFactory.LoadFromUri(new Uri("http://demo.leadtools.com/images/pdf/leadtools.pdf"), loadDocumentOptions)) { // Convert to PDF using default options string outFileName = Path.Combine(LEAD_VARS.ImagesDir, "no-redaction.pdf"); DocumentRedactConvert(documentConverter, document, DocumentFormat.Pdf, outFileName); // Open the converted document no-redaction.pdf, notice that it resembles the original document // We will use DocumentPageText to dynamically find the location of all words containing "leadtools" document.IsReadOnly = false; const string toRedact = "leadtools"; DocumentPage documentPage = document.Pages[0]; DocumentPageText pageText = documentPage.GetText(); pageText.BuildWords(); AnnContainer container = documentPage.GetAnnotations(true); foreach (DocumentWord word in pageText.Words) { // Find if the word is ours if (word.Value.Contains(toRedact)) { // Yes, redact it var annRedactionObject = new AnnRedactionObject(); annRedactionObject.Rect = word.Bounds; container.Children.Add(annRedactionObject); } } // Set the container into the page documentPage.SetAnnotations(container); // Set the redaction options // AnnotationRedactionOptions & ConvertRedactionOptions reference document.Annotations.RedactionOptions = new DocumentRedactionOptions(); // ViewRedactionOptions & AnnotationsRedactionOptions reference document.Annotations.RedactionOptions.ViewOptions.Mode = DocumentRedactionMode.Apply; document.Annotations.RedactionOptions.ViewOptions.ReplaceCharacter = '*'; document.Annotations.RedactionOptions.ConvertOptions.Mode = DocumentRedactionMode.Apply; document.Annotations.RedactionOptions.ConvertOptions.ReplaceCharacter = '*'; document.IsReadOnly = true; // Convert again, the result should have all instance of "leadtools" in the first page and replaced with * outFileName = Path.Combine(LEAD_VARS.ImagesDir, "redacted.pdf"); DocumentRedactConvert(documentConverter, document, DocumentFormat.Pdf, outFileName); } } } private static void DocumentRedactConvert(DocumentConverter documentConverter, LEADDocument document, DocumentFormat documentFormat, string outFileName) { var jobData = new DocumentConverterJobData(); jobData.Document = document; jobData.DocumentFormat = documentFormat; jobData.RasterImageFormat = RasterImageFormat.Unknown; jobData.OutputDocumentFileName = outFileName; DocumentConverterJob job = documentConverter.Jobs.CreateJob(jobData); documentConverter.Jobs.RunJob(job); } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }