How to create a script to Automatically Remove and Replace Information from your Documents
You can use scripts to redact information from recognized text:
1. Replace information in a document.
To do so, call the IDocumentToIndexPage::ReplaceTextOnPage( what, with, ignoreCase ) method in the indexing script.
For example, if you want to replace the text "SampleText" with "ChangedText" throughout the whole document regardless of case, add the following script:
//JScript
for( var p = 0, pc = this.Pages.Count; p < pc; p++){
var page = this.Pages.Item(p);
page.ReplaceTextOnPage( 'SampleText', 'ChangedText', true);
}
this.SkipManualIndexing = true;
Important! Line breaks (\n) and tabs (\t) cannot be used as "SampleText" and "ChangedText" arguments.
2. Hide this information in detected blocks.
To do so, call the RedactRegion method for the selected block in the indexing script.
Note. This method is not suitable for barcode blocks.
To edit all detected text blocks in a document, add the following sample code to your script:
//JScript
for( var p = 0, pc = this.Pages.Count; p < pc; p++){
var page = this.Pages.Item(p);
for(var tb = 0, tbc = page.TextBlocks.Count; tb < tbc; tb++){
var textBlock = page.TextBlocks.Item(tb);
page.RedactRegion(textBlock.Region);
}
}
this.SkipManualIndexing = true;
3. Edit index fields.
To do so, call the RedactRegion method for the selected index field in the IndexingFinished script.
To edit all index fields for the selected document type, add the following sample code to your script:
//JScript
var pagesCount = this.DocumentPages.Count;
for( var a = 0, ac = this.Attributes.Count; a < ac; a++) {
var attribute = this.Attributes.Item(a);
var pageIndex = attribute.PageIndex;
if( pageIndex >= 0 && pageIndex < pagesCount ){
this.DocumentPages.Item(pageIndex).RedactAttribute(attribute);
}
}
26.03.2024 13:49:49