Error processing SSI file
LEADTOOLS OCR (Leadtools.Forms.Ocr assembly)

Show in webframe

IOcrTableZoneManager Interface








Members 
Represents an Object used to manipulate cells inside a table zone.
Object Model
Syntax
public interface IOcrTableZoneManager 
'Declaration
 
Public Interface IOcrTableZoneManager 
'Usage
 
Dim instance As IOcrTableZoneManager
public interface IOcrTableZoneManager 
function Leadtools.Forms.Ocr.IOcrTableZoneManager() 
public interface class IOcrTableZoneManager 
Remarks

You can access the IOcrTableZoneManager of an OCR page through the IOcrPage.TableZoneManager property. If the value of this property is null (Nothing in Visual Basic), then the current OCR engine does not support table cell manipulation.

You can use table cells in one of two ways:

To manipulate a cell properties other than its bound (OcrZoneCell.Bounds), get the array of detected cells through IOcrZoneCollection.GetZoneCells, change the cell background color, style or any border color, style or with. When you are done, re-set the array using IOcrZoneCollection.SetZoneCells.

It is not recommended that you manually remove or add cells to the array, the engine is very sensitive to zone boundaries and any non-accurate information will cause an error. Instead, use the various methods of IOcrTableZoneManager to manipulate the cell location and size.

Manipulating cells position and size inside a table zone is a very sensitive matter and any non-accurate information will cause an error. The IOcrTableZoneManager contains methods to easily accomplish these tasks with minimum error. These methods are built around what is expected to be accomplished by an application that manipulates the cells of a zone through a user-interface, such as clicking and dragging with the mouse.

The following methods can be used to manipulate the cells position and size:

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Forms.Ocr
Imports Leadtools.Drawing

Public Sub IOcrTableZoneManageExample(ocrEngine As IOcrEngine, documentFileName As String)
   ' Create a document and add the page to it
   Using ocrPage As IOcrPage = ocrEngine.CreatePage(ocrEngine.RasterCodecsInstance.Load(documentFileName, 1), OcrImageSharingMode.AutoDispose)
      ' The coordinate for the table has been previously determined:
      Dim tableBounds As New LogicalRectangle(266, 554, 404, 647, LogicalUnit.Pixel)
      ' Add a table zone with these bounds
      Dim zone As New OcrZone()
      zone.ZoneType = OcrZoneType.Table
      zone.Bounds = tableBounds
      ocrPage.Zones.Add(zone)

      ' Detect the cells inside this table
      Dim ocrTableZoneManager As IOcrTableZoneManager = ocrPage.TableZoneManager
      ocrTableZoneManager.AutoDetectCells(0)

      ' Show the cells for this zone (if any)
      zone = ocrPage.Zones(0)

      Console.WriteLine("Detected values:")
      ShowCells(ocrPage, zone)

      ' Change the style of the first cell to have no borders
      Dim cells As OcrZoneCell() = ocrPage.Zones.GetZoneCells(zone)
      If cells IsNot Nothing AndAlso cells.Length > 0 Then
         Dim cell As OcrZoneCell = cells(0)
         cell.LeftBorderStyle = OcrCellBorderLineStyle.None
         cell.TopBorderStyle = OcrCellBorderLineStyle.None
         cell.RightBorderStyle = OcrCellBorderLineStyle.None
         cell.BottomBorderStyle = OcrCellBorderLineStyle.None
         cells(0) = cell
      End If

      ocrPage.Zones.SetZoneCells(zone, cells)

      Console.WriteLine("Updated values:")
      ShowCells(ocrPage, zone)
   End Using
End Sub

Private Shared Sub ShowCells(ocrPage As IOcrPage, zone As OcrZone)
   Dim cells As OcrZoneCell() = ocrPage.Zones.GetZoneCells(zone)
   If cells IsNot Nothing Then
      Console.WriteLine("Table contains {0} zones", cells.Length)

      For i As Integer = 0 To cells.Length - 1
         Console.WriteLine("  Cell {0}:", i)

         Dim cell As OcrZoneCell = cells(i)
         Console.WriteLine("    Type: {0}", cell.CellType)
         Console.WriteLine("    Bounds: {0}", cell.Bounds)
         Console.WriteLine("    Background color: {0}", cell.BackgroundColor)
         Console.WriteLine("    Left border color: {0}", cell.LeftBorderColor)
         Console.WriteLine("    Left border width: {0}", cell.LeftBorderWidth)
         Console.WriteLine("    Left border style: {0}", cell.LeftBorderStyle)
         Console.WriteLine("    Top border color: {0}", cell.TopBorderColor)
         Console.WriteLine("    Top border width: {0}", cell.TopBorderWidth)
         Console.WriteLine("    Top border style: {0}", cell.TopBorderStyle)
         Console.WriteLine("    Right border color: {0}", cell.RightBorderColor)
         Console.WriteLine("    Right border width: {0}", cell.RightBorderWidth)
         Console.WriteLine("    Right border style: {0}", cell.RightBorderStyle)
         Console.WriteLine("    Bottom border color: {0}", cell.BottomBorderColor)
         Console.WriteLine("    Bottom border width: {0}", cell.BottomBorderWidth)
         Console.WriteLine("    Bottom border style: {0}", cell.BottomBorderStyle)
      Next
   End If
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Forms.Ocr;
using Leadtools.Drawing;

private static void IOcrTableZoneManageExample(IOcrEngine ocrEngine, string documentFileName)
{
   // Create a document and add the page to it
   using (IOcrPage ocrPage = ocrEngine.CreatePage(ocrEngine.RasterCodecsInstance.Load(documentFileName, 1), OcrImageSharingMode.AutoDispose))
   {
      // The coordinate for the table has been previously determined:
      LogicalRectangle tableBounds = new LogicalRectangle(266, 554, 404, 647, LogicalUnit.Pixel);
      // Add a table zone with these bounds
      OcrZone zone = new OcrZone();
      zone.ZoneType = OcrZoneType.Table;
      zone.Bounds = tableBounds;
      ocrPage.Zones.Add(zone);

      if (ocrPage.TableZoneManager != null)
      {
         // Detect the cells inside this table
         IOcrTableZoneManager ocrTableZoneManager = ocrPage.TableZoneManager;
         ocrTableZoneManager.AutoDetectCells(0);
      }

      // Show the cells for this zone (if any)
      zone = ocrPage.Zones[0];

      Console.WriteLine("Detected values:");
      ShowCells(ocrPage, zone);

      // Change the style of the first cell to have no borders
      OcrZoneCell[] cells = ocrPage.Zones.GetZoneCells(zone);
      if (cells != null && cells.Length > 0)
      {
         OcrZoneCell cell = cells[0];
         cell.LeftBorderStyle = OcrCellBorderLineStyle.None;
         cell.TopBorderStyle = OcrCellBorderLineStyle.None;
         cell.RightBorderStyle = OcrCellBorderLineStyle.None;
         cell.BottomBorderStyle = OcrCellBorderLineStyle.None;
         cells[0] = cell;
      }

      ocrPage.Zones.SetZoneCells(zone, cells);

      Console.WriteLine("Updated values:");
      ShowCells(ocrPage, zone);
   }
}

private static void ShowCells(IOcrPage ocrPage, OcrZone zone)
{
   OcrZoneCell[] cells = ocrPage.Zones.GetZoneCells(zone);
   if (cells != null)
   {
      Console.WriteLine("Table contains {0} zones", cells.Length);

      for (int i = 0; i < cells.Length; i++)
      {
         Console.WriteLine("  Cell {0}:", i);

         OcrZoneCell cell = cells[i];
         Console.WriteLine("    Type: {0}", cell.CellType);
         Console.WriteLine("    Bounds: {0}", cell.Bounds);
         Console.WriteLine("    Background color: {0}", cell.BackgroundColor);
         Console.WriteLine("    Left border color: {0}", cell.LeftBorderColor);
         Console.WriteLine("    Left border width: {0}", cell.LeftBorderWidth);
         Console.WriteLine("    Left border style: {0}", cell.LeftBorderStyle);
         Console.WriteLine("    Top border color: {0}", cell.TopBorderColor);
         Console.WriteLine("    Top border width: {0}", cell.TopBorderWidth);
         Console.WriteLine("    Top border style: {0}", cell.TopBorderStyle);
         Console.WriteLine("    Right border color: {0}", cell.RightBorderColor);
         Console.WriteLine("    Right border width: {0}", cell.RightBorderWidth);
         Console.WriteLine("    Right border style: {0}", cell.RightBorderStyle);
         Console.WriteLine("    Bottom border color: {0}", cell.BottomBorderColor);
         Console.WriteLine("    Bottom border width: {0}", cell.BottomBorderWidth);
         Console.WriteLine("    Bottom border style: {0}", cell.BottomBorderStyle);
      }
   }
}
Requirements

Target Platforms

See Also

Reference

IOcrTableZoneManager Members
Leadtools.Forms.Ocr Namespace

Error processing SSI file
Leadtools.Forms.Ocr requires a Recognition or Document Imaging Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features