viewOptions Property (original) (raw)

Summary

Options to use when applying the redactions during viewing.

Syntax

Object.defineProperty(DocumentRedactionOptions.prototype, 'viewOptions', get: function(), set: function(value) )

Property Value

The options to use when applying the redactions during viewing. The default value is a new instance of ViewRedactionOptions.

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>