#include "ltdoc2.h"
L_LTDOC2_API L_INT L_Doc2AddZoneRectExt(hDoc, nDocId, nPageIndex, nZoneIndex, prc)
Adds a rectangle to a user zone.
Handle to the OCR document obtained by calling the L_Doc2StartUp function.
Document ID created by calling L_Doc2CreateDocument.
Zero-based index of the page.
Zero-based index of the zone.
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.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
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:
Table zones (must be rectangular)
OMR zones (can contain non-touching rectangles)
Required DLLs and Libraries
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;}