replaceCharacter Property

Summary

Character to use when replacing redacted text.

Syntax
TypeScript
JavaScript
Object.defineProperty(AnnotationsRedactionOptions.prototype, 'replaceCharacter', 
   get: function(), 
   set: function(value) 
) 
replaceCharacter: string; 

Property Value

The value to use when replacing each character in the redacted text. The default value is *.

Remarks

To remove redacted text from the document altogether, use a value 0. For more information, refer to Document View and Convert Redaction.

Example
RedactOptions.ts
DocumentHelper.ts
RedactOptions.js
DocumentHelper.js
RedactOptions.html
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 SVG 
                                    const 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); 
      else 
         console.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 SVG 
                                    const 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); 
      else 
         console.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> 
Requirements

Target Platforms

Help Version 22.0.2023.2.1
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

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