DocumentRedactionOptions Class (original) (raw)

Summary

Options to use when applying the redactions on a LEADDocument.

Syntax

[SerializableAttribute()] [DataContractAttribute()] public class DocumentRedactionOptions

public: [SerializableAttribute, DataContractAttribute] ref class DocumentRedactionOptions

class DocumentRedactionOptions: 

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"; }