L_Doc2AddZoneRectExt

#include "ltdoc2.h"

L_LTDOC2_API L_INT L_Doc2AddZoneRectExt(hDoc, nDocId, nPageIndex, nZoneIndex, prc)

Adds a rectangle to a user zone.

Parameters

L_HDOC2 hDoc

Handle to the OCR document obtained by calling the L_Doc2StartUp function.

L_INT nDocId

Document ID created by calling L_Doc2CreateDocument.

L_INT nPageIndex

Zero-based index of the page.

L_INT nZoneIndex

Zero-based index of the zone.

RECT * prc

Pointer to a RECT structure to be added to specified zone. Because the OCR engine does not support overlapping user zones, the newly added rectangle prc must be disjointed from the other zones.

Returns

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

Comments

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

L_Doc2AddZoneRectExt inserts 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:

Required DLLs and Libraries

See Also

Functions

Topics

Example

L_INT Doc2AddZoneRectExampleExt(L_HDOC2 hDoc, L_INT nDocId, 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_Doc2AddZoneExt(hDoc, nDocId, nPageIndex, 0, &ZoneData); 
   if (nRet != SUCCESS) 
      return nRet; 
 
   RECT rc; 
   rc.left = 70; 
   rc.top = 70; 
   rc.right = 130; 
   rc.bottom = 130; 
   nRet = L_Doc2AddZoneRectExt(hDoc, nDocId, 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_Doc2ExcludeZoneRectExt(hDoc, nDocId, 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.1.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS OCR Module - OmniPage Engine C API Help