Character to use when replacing redacted text.
Object.defineProperty(AnnotationsRedactionOptions.prototype, 'replaceCharacter',get: function(),set: function(value))
replaceCharacter: string;
The value to use when replacing each character in the redacted text. The default value is *.
To remove redacted text from the document altogether, use a value 0. For more information, refer to Document View and Convert Redaction.
import { DocumentHelper } from "../../utilities/DocumentHelper";export class DocumentAnnotations_RedactionOptionsExample {public constructor() {lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);DocumentHelper.initFactory();}public run = (buttonID: string) => {const exampleButton = document.getElementById(buttonID);exampleButton.onclick = this.convertRedact;}convertRedact = () => {const url = "http://demo.leadtools.com/images/pdf/leadtools.pdf";const loadDocumentOptions = new lt.Document.LoadDocumentOptions();DocumentHelper.log("Loading document...");lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions).done((document: lt.Document.LEADDocument) => {document.isReadOnly = false;const toRedact = "leadtools";const documentPage = document.pages.item(0);documentPage.getText(lt.LeadRectD.empty).done((pageText: lt.Document.DocumentPageText) => {DocumentHelper.log("Page Text retrieved");documentPage.getAnnotations(true).done((container) => {DocumentHelper.log("Annotations retrieved");pageText.buildWords();DocumentHelper.log("Redacting all instances of: " + toRedact);pageText.words.forEach((word) => {if (word.value.indexOf(toRedact) !== -1) {const annRedactObject = new lt.Annotations.Engine.AnnRedactionObject();annRedactObject.rect = word.bounds;container.children.add(annRedactObject);}});documentPage.setAnnotations(container).done(() => {DocumentHelper.log("Annotations set.");document.annotations.redactionOptions = new lt.Document.DocumentRedactionOptions();document.annotations.redactionOptions.viewOptions.mode = lt.Document.DocumentRedactionMode.apply;document.annotations.redactionOptions.viewOptions.replaceCharacter = '*';document.annotations.redactionOptions.convertOptions.mode = lt.Document.DocumentRedactionMode.apply;document.annotations.redactionOptions.convertOptions.replaceCharacter = '*';document.isReadOnly = true;DocumentHelper.log("Convert to pdf.");const jobData = new lt.Document.DocumentConverterJobData();jobData.documentFormat = lt.Document.Writer.DocumentFormat.pdf;jobData.rasterImageFormat = lt.Document.RasterImageFormat.unknown;document.convert(jobData).done((result: any) => {// This is generic code-- this code checks if the results have been archived into a ZIP file if this// example was converting to, say SVGconst resultDocument = result.document != null ? result.document.url : result.archive.url;const link = window.document.createElement("a");const url = lt.Document.DocumentFactory.serviceUri + "/" + resultDocument;link.href = url;link.innerHTML = url;link.target = "_default";DocumentHelper.log("Converted: " + url, url);})}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}}
export class DocumentHelper {static showServiceError = (jqXHR, statusText, errorThrown) => {alert("Error returned from service. See the console for details.");const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown);console.error(serviceError);}static log = (message: string, data?: any) => {const outputElement = document.getElementById("output");if (outputElement) {const time = (new Date()).toLocaleTimeString();const textElement = document.createElement("p");textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message;outputElement.insertBefore(textElement, outputElement.firstChild);}if (!data)console.log(message);elseconsole.log(message, data);}static initFactory = () => {// To communicate with the DocumentsService, it must be running!// Change these parameters to match the path to the service.lt.Document.DocumentFactory.serviceHost = "http://localhost:40000";lt.Document.DocumentFactory.servicePath = "";lt.Document.DocumentFactory.serviceApiPath = "api";}}
import { DocumentHelper } from "../../utilities/DocumentHelper";export class DocumentAnnotations_RedactionOptionsExample {constructor() {lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);DocumentHelper.initFactory();}run = (buttonID) => {const exampleButton = document.getElementById(buttonID);exampleButton.onclick = this.convertRedact;}convertRedact = () => {const url = "http://demo.leadtools.com/images/pdf/leadtools.pdf";const loadDocumentOptions = new lt.Document.LoadDocumentOptions();DocumentHelper.log("Loading document...");lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions).done((document) => {document.isReadOnly = false;const toRedact = "leadtools";const documentPage = document.pages.item(0);documentPage.getText(lt.LeadRectD.empty).done((pageText) => {DocumentHelper.log("Page Text retrieved");documentPage.getAnnotations(true).done((container) => {DocumentHelper.log("Annotations retrieved");pageText.buildWords();DocumentHelper.log("Redacting all instances of: " + toRedact);pageText.words.forEach((word) => {if (word.value.indexOf(toRedact) !== -1) {const annRedactObject = new lt.Annotations.Engine.AnnRedactionObject();annRedactObject.rect = word.bounds;container.children.add(annRedactObject);}});documentPage.setAnnotations(container).done(() => {DocumentHelper.log("Annotations set.");document.annotations.redactionOptions = new lt.Document.DocumentRedactionOptions();document.annotations.redactionOptions.viewOptions.mode = lt.Document.DocumentRedactionMode.apply;document.annotations.redactionOptions.viewOptions.replaceCharacter = '*';document.annotations.redactionOptions.convertOptions.mode = lt.Document.DocumentRedactionMode.apply;document.annotations.redactionOptions.convertOptions.replaceCharacter = '*';document.isReadOnly = true;DocumentHelper.log("Convert to pdf.");const jobData = new lt.Document.DocumentConverterJobData();jobData.documentFormat = lt.Document.Writer.DocumentFormat.pdf;jobData.rasterImageFormat = lt.Document.RasterImageFormat.unknown;document.convert(jobData).done((result) => {// This is generic code-- this code checks if the results have been archived into a ZIP file if this// example was converting to, say SVGconst resultDocument = result.document != null ? result.document.url : result.archive.url;const link = window.document.createElement("a");const url = lt.Document.DocumentFactory.serviceUri + "/" + resultDocument;link.href = url;link.innerHTML = url;link.target = "_default";DocumentHelper.log("Converted: " + url, url);})}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}).fail(DocumentHelper.showServiceError);}}
export class DocumentHelper {static showServiceError = (jqXHR, statusText, errorThrown) => {alert("Error returned from service. See the console for details.");const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown);console.error(serviceError);}static log = (message, data) => {const outputElement = document.getElementById("output");if (outputElement) {const time = (new Date()).toLocaleTimeString();const textElement = document.createElement("p");textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message;outputElement.insertBefore(textElement, outputElement.firstChild);}if (!data)console.log(message);elseconsole.log(message, data);}static initFactory = () => {// To communicate with the DocumentsService, it must be running!// Change these parameters to match the path to the service.lt.Document.DocumentFactory.serviceHost = "http://localhost:40000";lt.Document.DocumentFactory.servicePath = "";lt.Document.DocumentFactory.serviceApiPath = "api";}}
<!doctype html><html lang="en"><title>Document Example | RedactionOptions</title><head><script src="https://code.jquery.com/jquery-2.2.4.min.js"integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script><script src="../../LT/Leadtools.js"></script><script src="../../LT/Leadtools.Controls.js"></script><script src="../../LT/Leadtools.Annotations.Engine.js"></script><script src="../../LT/Leadtools.Annotations.Designers.js"></script><script src="../../LT/Leadtools.Annotations.Rendering.Javascript.js"></script><script src="../../LT/Leadtools.Annotations.Automation.js"></script><script src="../../LT/Leadtools.ImageProcessing.Main.js"></script><script src="../../LT/Leadtools.ImageProcessing.Color.js"></script><script src="../../LT/Leadtools.ImageProcessing.Core.js"></script><script src="../../LT/Leadtools.ImageProcessing.Effects.js"></script><script src="../../LT/Leadtools.Document.js"></script><script src="../../LT/Leadtools.Document.Viewer.js"></script><link rel="stylesheet" type="text/css" href="../../css/examples.css"><!-- All demo files are bundled and appended to the window --><script src="../../bundle.js" type="text/javascript"></script></head><body><div><button type="button" id="exampleButton">Run Example</button></div><div id="output"></div><div><img id="img" /></div></body><script>window.onload = () => {const example = new window.examples.DocumentAnnotations.RedactOptions();example.run("exampleButton");};</script></html>
Document View and Convert Redaction
AnnotationsRedactionOptions Class
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
