←Select platform

LoadZones(string) Method

Summary

Load zones from a multi-page zones disk file.

Syntax

C#
VB
Java
Objective-C
C++
public void LoadZones( 
   string fileName 
) 
Overloads Sub LoadZones( _ 
   ByVal fileName As String _ 
)  
- (void)loadZonesFromFile:(NSString *)fileName error:(NSError **)error 
public void loadZones(String fileName) 
void LoadZones(  
   String^ fileName 
)  

Parameters

fileName
The name of the file containing the zones to load.

Remarks

To save and load the zones of OCR pages, you can use one of these methods:

Note on loading zones from a multi-page zone file: If the file does not contain zones data with the correct page number, the engine will not load any zones for this page. After the method returns, any OCR page that did not have zones data will contain zero zones. (the IOcrPage.Zones property contains 0 items). You can then use IOcrPage.AutoZone if required to re-zone this page.

Use this method to load the zones previously saved into a multi-page zones disk file with the IOcrDocument.SaveZones(filename) method.

The zones of this page will first be cleared prior to loading the new items.

After this method finishes, you can access the loaded zones in the IOcrPage.Zones property.

To load and save the zones to a .NET stream, use IOcrDocument.SaveZones(stream), IOcrDocument.LoadZones(stream) and IOcrPage.LoadZones(stream, pageNumber).

Saving zones to an external file or a stream could be useful when you are processing forms. For example, you can load one of the forms and automatically find the zones inside it using AutoZone, if the automatic zone detection was not 100 percent satisfactory, you can update the zones in the IOcrPage.Zones collection manually and then save the result with IOcrDocument.SaveZones(filename). Once the zones are saved. You can now process all similar forms in the following manner:

Example

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Forms.Common; 
using Leadtools.WinForms; 
using Leadtools.Drawing; 
 
public void LoadSaveZonesExample() 
{ 
   OcrEngineType engineType = OcrEngineType.LEAD; 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(engineType, false)) 
   { 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument()) 
      { 
         // Add 2 pages 
         ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), null); 
         ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"), null); 
 
         // Auto-zone all the pages 
         ocrDocument.Pages.AutoZone(null); 
         Console.WriteLine("Number of zones after auto-zone:"); 
         for (int i = 0; i < ocrDocument.Pages.Count; i++) 
         { 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count); 
         } 
 
         // Save the zones to a disk file 
         string zonesFileName = Path.Combine(LEAD_VARS.ImagesDir, "LoadSaveZonesExample.ozf"); 
         ocrDocument.SaveZones(zonesFileName); 
 
         // Clear the zones 
         for (int i = 0; i < ocrDocument.Pages.Count; i++) 
         { 
            ocrDocument.Pages[i].Zones.Clear(); 
         } 
 
         // Show the zones now: 
         Console.WriteLine("Number of zones after saving the zones to file and then clear:"); 
         for (int i = 0; i < ocrDocument.Pages.Count; i++) 
         { 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count); 
         } 
 
         // Re-load the zones 
         ocrDocument.LoadZones(zonesFileName); 
 
         // Show the zones now: 
         ocrDocument.Pages.AutoZone(null); 
         Console.WriteLine("Number of zones after loading the zones from file:"); 
         for (int i = 0; i < ocrDocument.Pages.Count; i++) 
         { 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count); 
         } 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS 20\Bin\Common\OcrLEADRuntime"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Ocr 
Imports Leadtools.Forms 
Imports Leadtools.WinForms 
Imports Leadtools.Drawing 
 
Public Sub LoadSaveZonesExample() 
   Dim engineType As OcrEngineType = OcrEngineType.LEAD 
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(engineType, False) 
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrLEADRuntimeDir) 
 
      Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument() 
         ' Add 2 pages 
         ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), Nothing) 
         ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"), Nothing) 
 
         ' Auto-zone all the pages 
         ocrDocument.Pages.AutoZone(Nothing) 
         Console.WriteLine("Number of zones after auto-zone:") 
         For i As Integer = 0 To ocrDocument.Pages.Count - 1 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count) 
         Next 
 
         ' Save the zones to a disk file 
         Dim zonesFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "LoadSaveZonesExample.ozf") 
         ocrDocument.SaveZones(zonesFileName) 
 
         ' Clear the zones 
         For i As Integer = 0 To ocrDocument.Pages.Count - 1 
            ocrDocument.Pages(i).Zones.Clear() 
         Next 
 
         ' Show the zones now: 
         Console.WriteLine("Number of zones after saving the zones to file and then clear:") 
         For i As Integer = 0 To ocrDocument.Pages.Count - 1 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count) 
         Next 
 
         ' Re-load the zones 
         ocrDocument.LoadZones(zonesFileName) 
 
         ' Show the zones now: 
         ocrDocument.Pages.AutoZone(Nothing) 
         Console.WriteLine("Number of zones after loading the zones from file:") 
         For i As Integer = 0 To ocrDocument.Pages.Count - 1 
            Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count) 
         Next 
      End Using 
   End Using 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
   Public Const OcrLEADRuntimeDir As String = "C:\LEADTOOLS 20\Bin\Common\OcrLEADRuntime" 
End Class 

Requirements

Target Platforms

Help Version 20.0.2018.1.18
Products | Support | Contact Us | Copyright Notices
© 1991-2018 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Ocr Assembly