L_Doc2AddZoneRect

#include "ltdoc2.h"

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

L_HDOC2 hDoc;

handle to the OCR document

L_INT nPageIndex;

page index

L_INT nZoneIndex;

zone index

RECT * prc;

pointer to RECT structure

Adding a rectangle to a user zone.

Parameter

Description

hDoc

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

nPageIndex

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

nZoneIndex

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

prc

Pointer to RECT structure to be added to specified zone.

Returns

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:

Before inserting a new rectangle, you must add the zone to the user zone list by calling the L_Doc2AddZone 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

LTDOC2

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

L_Doc2AddZone, L_Doc2UpdateZone, L_Doc2GetZoneCount, L_Doc2GetZone, L_Doc2RemoveZone, L_Doc2ImportZones, L_Doc2ExportZones, L_Doc2FindZones, L_Doc2SetZoneOptions, L_Doc2GetZoneOptions, L_Doc2GetZoneColor, L_Doc2GetZoneLayout, L_Doc2GetZoneNodes, L_Doc2ExcludeZoneRect,  L_Doc2SetZoneLayout

Topics:

Working with Zones

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 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Professional OCR C API Help