L_Doc2AddZoneRect

#include "ltdoc2.h"

L_LTDOC2_API L_INT EXT_FUNCTION L_Doc2AddZoneRect(hDoc, nPageIndex, nZoneIndex, prc)

Adding a rectangle to a user zone.

Parameters

L_HDOC2 hDoc

Handle to the OCR document. This handle is obtained by calling the L_Doc2StartUp function.

L_INT nPageIndex

Specifies the index of the page. This is a zero-based index.

L_INT nZoneIndex

Specifies the index of the zone. This is a zero-based index.

RECT * prc

Pointer to RECT structure to be added to specified zone.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function will insert a new rectangle into the specified zone. The zone will be irregular and formed from a union of rectangles. This is called a pizzabox shape.

A pizzabox shape is a union of rectangles, where the top of each rectangle in the union must touch the bottom of the rectangle above it. A rectangle can touch at most one rectangle above and one below. The following zones cannot have a pizzabox shape:

✅ IMPORTANT

Before inserting a new rectangle, you must add the zone to the user zone list by calling the L_Doc2AddZone / L_Doc2AddZoneExt function.

Because the OCR engine does not support overlapping user zones, the newly added rectangle must be disjointed from the other zones.

Required DLLs and Libraries

See Also

Functions

Topics

Example

L_INT Doc2AddZoneRectExample(L_HDOC2 hDoc, L_INT nPageIndex) 
{ 
   L_INT nRet; 
   ZONEDATA2 ZoneData; 
 
   memset(&ZoneData, 0, sizeof(ZONEDATA2)); 
 
   ZoneData.uStructSize = sizeof(ZONEDATA2); 
   ZoneData.rcArea.left = 100; 
   ZoneData.rcArea.top = 100; 
   ZoneData.rcArea.right = 200; 
   ZoneData.rcArea.bottom = 200; 
   ZoneData.FillMethod = DOC2_FILL_DEFAULT; 
   ZoneData.RecogModule = DOC2_RECOGMODULE_AUTO; 
   ZoneData.CharFilter = DOC2_ZONE_CHAR_FILTER_DEFAULT; 
   ZoneData.Type = DOC2_ZONE_FLOWTEXT; 
 
   nRet = L_Doc2AddZone(hDoc, nPageIndex, 0, &ZoneData); 
   if (nRet != SUCCESS) 
      return nRet; 
 
   RECT rc; 
   rc.left = 70; 
   rc.top = 70; 
   rc.right = 130; 
   rc.bottom = 130; 
   nRet = L_Doc2AddZoneRect(hDoc, nPageIndex, 0, &rc); 
   if (nRet == SUCCESS) 
      MessageBox(NULL, TEXT("The rectangle is added to specific zone."), TEXT("Notice!"), MB_OK); 
 
   // recongize the page... 
   // save the recognition results... 
 
   nRet = L_Doc2ExcludeZoneRect(hDoc, nPageIndex, 0, &rc); 
   if (nRet == SUCCESS) 
      MessageBox(NULL, TEXT("The rectangle is subtracted from specific zone."), TEXT("Notice!"), MB_OK); 
 
   // recongize the page... 
   // save the recognition results... 
   // ... 
 
   return SUCCESS; 
} 
Help Version 21.0.2021.4.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS OCR Module - OmniPage Engine C API Help