←Select platform

RedactionOptions Property

Summary

Redaction options to use when this document is viewed or converted.

Syntax
C#
VB
C++
public DocumentRedactionOptions RedactionOptions {get; set;} 
Public Property RedactionOptions() As DocumentRedactionOptions 
   Get 
   Set 
public:  
   property DocumentRedactionOptions^ RedactionOptions 
   { 
      DocumentRedactionOptions^ get() 
      void set(DocumentRedactionOptions^ value) 
   } 

Property Value

The redaction options to use when this document is viewed or converted. The default value is null.

Remarks

The default value of null instructs the DocumentViewer and DocumentConverter to not perform any special processing for the annotation objects in the pages of this LEADDocument during viewing or converting.

To apply the annotations, set a new instance of DocumentRedactionOptions in RedactionOptions and modify its options for the desired operations.

For more information, refer to Document View and Convert Redaction.

Example

This example will load a PDF document, then dynamically apply redactions to any word containing "leadtools" found, and save the results back into an external PDF.

C#
VB
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() 
{ 
	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 
			document.Annotations.RedactionOptions = new DocumentRedactionOptions(); 
			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:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Document.Writer 
Imports Leadtools.Svg 
Imports Leadtools.Document 
Imports Leadtools.Caching 
Imports Leadtools.Annotations.Engine 
Imports Leadtools.Barcode 
Imports Leadtools.Ocr 
Imports LeadtoolsDocumentExamples.LeadtoolsExamples.Common 
Imports Leadtools.Document.Converter 
 
Public Shared Sub DocumentRedactionExample() 
   Using documentConverter As New DocumentConverter() 
      ' Load a PDF filed 
      Dim loadDocumentOptions As New LoadDocumentOptions() 
      Using document As LEADDocument = DocumentFactory.LoadFromUri(New Uri("http://demo.leadtools.com/images/pdf/leadtools.pdf"), loadDocumentOptions) 
         ' Convert to PDF using default options 
         Dim outFileName As String = Path.Combine(ImagesPath.Path, "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 toRedact As String = "leadtools" 
         Dim documentPage As DocumentPage = document.Pages(0) 
         Dim pageText As DocumentPageText = documentPage.GetText() 
         pageText.BuildWords() 
 
         Dim container As AnnContainer = documentPage.GetAnnotations(True) 
         For Each word As DocumentWord In pageText.Words 
            ' Find if the word Is ours 
            If word.Value.Contains(toRedact) Then 
               ' Yes, redact it 
               Dim annRedactionObject As New AnnRedactionObject() 
               annRedactionObject.Rect = word.Bounds 
               container.Children.Add(annRedactionObject) 
            End If 
         Next 
 
         ' Set the container into the page 
         documentPage.SetAnnotations(container) 
 
         ' Set the redaction options 
         document.Annotations.RedactionOptions = New DocumentRedactionOptions() 
         document.Annotations.RedactionOptions.ViewOptions.Mode = DocumentRedactionMode.Apply 
         document.Annotations.RedactionOptions.ViewOptions.ReplaceCharacter = "*"c 
         document.Annotations.RedactionOptions.ConvertOptions.Mode = DocumentRedactionMode.Apply 
         document.Annotations.RedactionOptions.ConvertOptions.ReplaceCharacter = "*"c 
 
         document.IsReadOnly = True 
 
         ' Convert again, the result should have all instance of "leadtools" in the first page And replaced with * 
         outFileName = Path.Combine(ImagesPath.Path, "redacted.pdf") 
         DocumentRedactConvert(documentConverter, document, DocumentFormat.Pdf, outFileName) 
      End Using 
   End Using 
End Sub 
 
Private Shared Sub DocumentRedactConvert(documentConverter As DocumentConverter, document As LEADDocument, documentFormat As DocumentFormat, outFileName As String) 
   Dim jobData As New DocumentConverterJobData() 
   jobData.Document = document 
   jobData.DocumentFormat = documentFormat 
   jobData.RasterImageFormat = RasterImageFormat.Unknown 
   jobData.OutputDocumentFileName = outFileName 
 
   Dim job As DocumentConverterJob = documentConverter.Jobs.CreateJob(jobData) 
   documentConverter.Jobs.RunJob(job) 
End Sub 
Requirements
Target Platforms
Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.