characterIndex Property

Summary

The index where the Character can be found in the original DocumentPageText.Characters list.

Syntax
TypeScript
JavaScript
Object.defineProperty(PageCharacter.prototype, 'characterIndex', 
   get: function(), 
   set: function(value) 
) 
characterIndex: number; 

Property Value

An integer corresponding to the index value.

Example
Compare.ts
DocumentHelper.ts
Compare.js
DocumentHelper.js
Compare.html
import { DocumentHelper } from "../../utilities/DocumentHelper"; 
 
export class LEADDocument_CompareExample { 
   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.compareDocument; 
   } 
 
   compareDocument = () => { 
 
      const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
      const url2 = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
      const loadDocumentOptions = new lt.Document.LoadDocumentOptions(); 
 
      lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions) 
         .done((document1: lt.Document.LEADDocument) => { 
            lt.Document.DocumentFactory.loadFromUri(url2, loadDocumentOptions) 
               .done((document2: lt.Document.LEADDocument) => { 
                  const options = new lt.Document.Compare.DocumentCompareOptions(); 
                  lt.Document.LEADDocument.compare([document1.documentId, document2.documentId], options) 
                     .done((diff) => { 
                        DocumentHelper.log("Total number of differences: " + diff.differences.length); 
                        DocumentHelper.log("Total number of insertions: " + diff.getInsertions().length); 
                        DocumentHelper.log("Total number of deletions: " + diff.getDeletions().length); 
                        diff.differences.forEach((textDiff) => { 
                           DocumentHelper.log("   Operation: " + textDiff.operation); 
                           DocumentHelper.log("   Text: " + textDiff.text); 
                           textDiff.characters.forEach((char) => { 
                              DocumentHelper.log("       Character: " + char.character); 
                              DocumentHelper.log("       Character Index: " + char.characterIndex); 
                              DocumentHelper.log("       Page Number: " + char.pageNumber); 
                              DocumentHelper.log("       Wordmap Index: " + char.wordmapIndex); 
                           }); 
                        }); 
                     }) 
                     .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 LEADDocument_CompareExample { 
   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.compareDocument; 
   } 
 
   compareDocument = () => { 
 
      const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
      const url2 = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
      const loadDocumentOptions = new lt.Document.LoadDocumentOptions(); 
 
      lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions) 
         .done((document1) => { 
            lt.Document.DocumentFactory.loadFromUri(url2, loadDocumentOptions) 
               .done((document2) => { 
                  const options = new lt.Document.Compare.DocumentCompareOptions(); 
                  lt.Document.LEADDocument.compare([document1.documentId, document2.documentId], options) 
                     .done((diff) => { 
                        DocumentHelper.log("Total number of differences: " + diff.differences.length); 
                        DocumentHelper.log("Total number of insertions: " + diff.getInsertions().length); 
                        DocumentHelper.log("Total number of deletions: " + diff.getDeletions().length); 
                        diff.differences.forEach((textDiff) => { 
                           DocumentHelper.log("   Operation: " + textDiff.operation); 
                           DocumentHelper.log("   Text: " + textDiff.text); 
                           textDiff.characters.forEach((char) => { 
                              DocumentHelper.log("       Character: " + char.character); 
                              DocumentHelper.log("       Character Index: " + char.characterIndex); 
                              DocumentHelper.log("       Page Number: " + char.pageNumber); 
                              DocumentHelper.log("       Wordmap Index: " + char.wordmapIndex); 
                           }); 
                        }); 
                     }) 
                     .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 | Compare</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.LEADDocument.Compare(); 
      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.