Options to use when applying the redactions during convert operations.
[SerializableAttribute()][DataContractAttribute()]public class ConvertRedactionOptions : AnnotationsRedactionOptions
public:[SerializableAttribute,DataContractAttribute]ref class ConvertRedactionOptions : AnnotationsRedactionOptions
class ConvertRedactionOptions(AnnotationsRedactionOptions): For more information, refer to Document View and Convert Redaction.
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 filedvar 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 optionsstring 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 oursif (word.Value.Contains(toRedact)){// Yes, redact itvar annRedactionObject = new AnnRedactionObject();annRedactionObject.Rect = word.Bounds;container.Children.Add(annRedactionObject);}}// Set the container into the pagedocumentPage.SetAnnotations(container);// Set the redaction options// AnnotationRedactionOptions & ConvertRedactionOptions referencedocument.Annotations.RedactionOptions = new DocumentRedactionOptions();// ViewRedactionOptions & AnnotationsRedactionOptions referencedocument.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:\LEADTOOLS23\Resources\Images";}
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import java.nio.file.Files;import java.nio.file.Paths;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.regex.Pattern;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.annotations.engine.*;import leadtools.barcode.*;import leadtools.caching.*;import leadtools.codecs.*;import leadtools.document.*;import leadtools.document.DocumentMimeTypes.UserGetDocumentStatusHandler;import leadtools.document.converter.*;import leadtools.document.writer.*;import leadtools.ocr.*;public void documentRedactionOptionsExample() throws URISyntaxException {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";// AnnotationsRedactionOptions redactionOptions = new// AnnotationsRedactionOptions();FileCache cache = new FileCache();cache.setCacheDirectory("c:\\cache-dir");DocumentConverter documentConverter = new DocumentConverter();// Load a PDF filedLoadDocumentOptions loadDocumentOptions = new LoadDocumentOptions();loadDocumentOptions.setCache(cache);LEADDocument document = DocumentFactory.loadFromUri(new URI("http://demo.leadtools.com/images/pdf/leadtools.pdf"),loadDocumentOptions);// Convert to PDF using default optionsString outFileName = combine(LEAD_VARS_IMAGES_DIR, "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.setReadOnly(false);final String toRedact = "leadtools";DocumentPage documentPage = document.getPages().get(0);DocumentPageText pageText = documentPage.getText();pageText.buildWords();AnnContainer container = documentPage.getAnnotations(true);for (DocumentWord word : pageText.getWords()) {// Find if the word is oursif (word.getValue().contains(toRedact)) {// Yes, redact itAnnRedactionObject annRedactionObject = new AnnRedactionObject();annRedactionObject.setRect(word.getBounds());container.getChildren().add(annRedactionObject);}}// Set the container into the pagedocumentPage.setAnnotations(container);// Set the redaction options// AnnotationRedactionOptions & ConvertRedactionOptions referencedocument.getAnnotations().setRedactionOptions(new DocumentRedactionOptions());// ViewRedactionOptions & AnnotationsRedactionOptions referencedocument.getAnnotations().getRedactionOptions().getViewOptions().setMode(DocumentRedactionMode.APPLY);document.getAnnotations().getRedactionOptions().getViewOptions().setReplaceCharacter('*');document.getAnnotations().getRedactionOptions().getConvertOptions().setMode(DocumentRedactionMode.APPLY);document.getAnnotations().getRedactionOptions().getConvertOptions().setReplaceCharacter('*');document.setReadOnly(true);// Convert again, the result should have all instance of "leadtools" in the// first page and replaced with *outFileName = combine(LEAD_VARS_IMAGES_DIR, "redacted.pdf");documentRedactConvert(documentConverter, document, DocumentFormat.PDF, outFileName);}private static void documentRedactConvert(DocumentConverter documentConverter, LEADDocument document,DocumentFormat documentFormat, String outFileName) {DocumentConverterJobData jobData = new DocumentConverterJobData();jobData.setDocument(document);jobData.setDocumentFormat(documentFormat);jobData.setRasterImageFormat(RasterImageFormat.UNKNOWN);jobData.setOutputDocumentFileName(outFileName);DocumentConverterJob job = documentConverter.getJobs().createJob(jobData);documentConverter.getJobs().runJob(job);}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
