RSL_FUNC(Bool32) RSL_Init(uint16_t wHeightCode,HANDLE hStorage) { LDPUMA_Init(0,NULL); LDPUMA_Registry(&hDebugRSL,SNAP_STUFF_RSL,NULL); LDPUMA_Registry(&hPreRSL_Root, "Предварительная обработка линий", hDebugRSL); LDPUMA_Registry(&hPreRSL_Debug, "Отладка работы (pre)", hPreRSL_Root); LDPUMA_Registry(&hPreRSL_Control, "Контроль работы (pre)", hPreRSL_Root); LDPUMA_Registry(&hSkipCheckUnderlining, "Выключить проверку подчерков", hPreRSL_Debug); LDPUMA_Registry(&hPrintUnderlineTest, "Вывод результатов проверки подчеркивания", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintUnderlineTest, "В Console печатается количество черных точек (на 1000) в верхней части растра линии", FALSE); LDPUMA_Registry(&hPrintUnderlines, "Вывод координат подчерков", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintUnderlines, "В Console печатаются координаты линий, определенных как подчерки", FALSE); LDPUMA_Registry(&hSkipCheckRaster, "Не проверять линии по растру", hPreRSL_Debug); LDPUMA_RegistryHelp(hSkipCheckRaster, "Если выключить проверку линий по растру, могут подтвердиться линии, выделенные по жирному тексту", FALSE); LDPUMA_Registry(&hPrintRasterCheck, "Вывод результатов проверки растра", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintRasterCheck, "В Console печатается количество черных точек (на 1000) в растре линии", FALSE); LDPUMA_Registry(&hDebugFrag,"Поиск фрагментов линии",hDebugRSL); LDPUMA_Registry(&hDebugFragOwner,"Отладка поиска фрагментов линии",hDebugFrag); LDPUMA_Registry(&hDebugFragOwnerControl,"Контроль поиска фрагментов линии",hDebugFrag); LDPUMA_Registry(&hDebugDrowRectForRaster,"Рисуется прямоугольник линии",hDebugFragOwnerControl); LDPUMA_Registry(&hSkipCorrectPolynomia,"Не корректировать 4-хугольник линии",hDebugFragOwner); LDPUMA_Registry(&hPrintCorrectPolynomia,"Результат проверки 4-хугольника линии",hDebugFragOwnerControl); LDPUMA_RegistryHelp(hPrintCorrectPolynomia,"Вывод на консоль результатов проверки 4-хугольника линии",FALSE); LDPUMA_Registry(&hDebugDrowPolynomia,"Рисуется контур линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowCleanedRaster,"Рисуется прямоугольник линии после подчистки",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowGetCorrectedLineStripesIntervals,"Рисуется интервальное представление линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineRaster,"Рисуется растр вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineStripesIntervals,"Рисуется интервальное представление вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineCutPoints,"Рисуется точки пересечения вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugTypeIntervals,"Вывод на Consol координат интервалов линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugTypeStripe,"Вывод на Consol интервальное представление линии",hDebugFragOwnerControl); LDPUMA_Registry(&hSkipDeleteNoiseEvents, "Не выполнять удаление шумовых фрагментов", hDebugFragOwner); LDPUMA_RegistryHelp(hSkipDeleteNoiseEvents, "Не удалять шумовые фрагменты", FALSE); LDPUMA_Registry(&hSkipDelFragLines, "Не удалять сильно фрагментированную линии", hDebugFragOwner); LDPUMA_RegistryHelp(hSkipDelFragLines, "Не удалять линии с числом фрагментов больше 5", FALSE); LDPUMA_Registry(&hPrintFragLines, "Печать результатов проверки фрагментации", hDebugFragOwnerControl); LDPUMA_RegistryHelp(hPrintFragLines, "Вывод на Consol результатов проверки кандидатов на удаление", FALSE); LDPUMA_Registry(&hDebugDrawLineFragmentsOwnWindow,"Рисуются фрагменты линии в отдельном окне",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDroweparationPoints,"Рисуются точки деления линии в отдельном окне",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrawLineFragments,"Рисуются фрагменты линии в основном окне",hDebugFragOwnerControl); LDPUMA_RegistryHelp(hDebugDrawLineFragments, "Фрагменты рисуются для каждой линии в отдельности", FALSE); LDPUMA_Registry(&hDebugAttr,"Поиск атрибутов линий",hDebugRSL); LDPUMA_Registry(&hDebugAttrOwner,"Контроль поиска атрибутов линии",hDebugAttr); LDPUMA_Registry(&hDebugTypeWidth,"Вывод на Consol ширины линии",hDebugAttrOwner); LDPUMA_Registry(&hDebugTypeDegree,"Вывод на Consol угла наклона линии",hDebugAttrOwner); gwHeightRC = wHeightCode; return RESULT; }
RPSTR_FUNC(Bool32) RPSTR_Init( uint16_t wHeightCode , Handle hStorage) { wHeightRC = wHeightCode; wLowRC = RPSTR_ERR_NO; snap_enable = TRUE; exit_enable = FALSE; LDPUMA_Init(0,NULL); //kegl_snap_init(); LDPUMA_Registry(&hSnapSpell,"Словарь и постобработка",NULL); LDPUMA_RegistryHelp(hSnapSpell,"Словарь",FALSE); LDPUMA_Registry(&hSnapWordSpell,"Запретить проверку словами",hSnapSpell); LDPUMA_Registry(&hSnapMatch,"Показать проверку словами",hSnapWordSpell); LDPUMA_RegistryHelp(hSnapWordSpell,"Разрешить проверку словами",FALSE); LDPUMA_Registry(&hSnapCapDrop,"Запретить обработку БУКВИЦ",hSnapSpell); LDPUMA_RegistryHelp(hSnapCapDrop,"Запретить обработку БУКВИЦ",FALSE); LDPUMA_Registry(&hSnapEndWord,"Отменить проверку окончаний",hSnapSpell); LDPUMA_RegistryHelp(hSnapEndWord,"Разрешить или нет любые замены окончаний",FALSE); LDPUMA_Registry(&hSnapStartWord,"Отменить осторожность в именах",hSnapSpell); LDPUMA_RegistryHelp(hSnapStartWord,"Обращаться или нет одинаково со всеми словами",FALSE); LDPUMA_Registry(&hVertCompD,"Прорисовка букв в вертикальных строках!",NULL); LDPUMA_RegistryHelp(hVertCompD,"Разрешить прорисовку букв в вертикальных строках",FALSE); return TRUE; }
RCUTP_FUNC(Bool32) RCUTP_Init(uint16_t wHeightCode,Handle hStorage) { LDPUMA_Init(0,NULL); LDPUMA_Registry(&hDebugRoot,SNAP_ROOT_CONVERTERS,NULL); LDPUMA_Registry(&hDebugMy,"Отладка точек разрезания",hDebugRoot); LDPUMA_Registry(&hDebugCutP,"Просмотр точек разрезания",hDebugMy); LDPUMA_RegistryHelp(hDebugCutP,"Эта опция предназначена для вывода точек разрезания",FALSE); gwHeightRC = wHeightCode; return TRUE; }
RSELSTR_FUNC(Bool32) RSELSTR_Init(uint16_t wHeightCode,HANDLE hStorage) { gwHeightRC = wHeightCode; LDPUMA_Init(0,NULL); /*------------------------------------------------------------------------------------------*/ // CHSTR_Init(wHeightCode,NULL); /*------------------------------------------------------------------------------------------*/ LDPUMA_Registry(&MainDebug,SNAP_ROOT_MAIN_DEBUG,NULL); LDPUMA_Registry(&MainTime,SNAP_ROOT_MAIN_TIME_CONTROL,NULL); LDPUMA_Registry(&RselstrTime,"Выделение строк..",MainTime); LDPUMA_Registry(&hExit,"От RSELSTR до распознавания",MainTime); // LDPUMA_Registry(&hVertCellsWork,"Обработка вертикальных ячеек таблиц",MainDebug); // LDPUMA_RegistryHelp(hVertCellsWork,"Активизация вершины разрешит обработку вертикальных ячеек таблиц.",FALSE); // LDPUMA_Registry(&hNegaCellsWork,"Обработка негативных ячеек таблиц",MainDebug); // LDPUMA_RegistryHelp(hNegaCellsWork,"Активизация вершины разрешит обработку негативных ячеек таблиц.",FALSE); LDPUMA_Registry(&hDebugCutStr,"Резка слипшихся компонент повсеместно",MainDebug); LDPUMA_RegistryHelp(hDebugCutStr,"Разрешить резку слипшихся компонент повсеместно",FALSE); // LDPUMA_Registry(&hStrPointed,"Проставка флагов точечных линий на строки",MainDebug); // LDPUMA_RegistryHelp(hStrPointed,"Активизация вершины разрешит проставку флагов точечных линий на строки.",FALSE); LDPUMA_Registry(&Root,SNAP_ROOT_STRINGS,NULL); LDPUMA_RegVariable(Root,"Установить уровень отладки.",&layout,"unsigned char"); LDPUMA_RegistryHelp(Root,"В переменных можно установить значение уровня \ отладки от 5 до 8. При продавление вершины строки будут выделяться модулем RBLOCK.",TRUE); LDPUMA_Registry(&hShowString,"Показать выделенные строки",Root); LDPUMA_RegistryHelp(hShowString,"Будут показаны позитивные строки с нормальной ориентацией в виде прямоугольников.",FALSE); LDPUMA_Registry(&hStrPointedD,"Показать строки с флагом пунктирности",Root); LDPUMA_RegistryHelp(hStrPointedD,"Будут показаны строки с флагом пунктирности.",FALSE); LDPUMA_Registry(&hShowCells,"Показать выделенные ячейки с компонентами!",Root); LDPUMA_RegistryHelp(hShowCells,"Будут подсвечиваться ячейка и входящие \ в нее компоненты.",FALSE); LDPUMA_Registry(&VertCells,"Работа с вертикальными ячейками таблиц",NULL); LDPUMA_RegistryHelp(VertCells,"Работа с вертикальными ячейками таблиц",FALSE); LDPUMA_Registry(&NegaCells,"Работа с негативными ячейками таблиц",NULL); LDPUMA_RegistryHelp(NegaCells,"Работа с негативными ячейками таблиц",FALSE); LDPUMA_Registry(&ShowVertCells,"Показать вертикальные ячейки таблиц",VertCells); LDPUMA_RegistryHelp(ShowVertCells,"Будут показаны ячейки таблиц с вертикальным расположением строк.",FALSE); LDPUMA_Registry(&ShowNegaCells,"Показать негативные ячейки таблиц",NegaCells); LDPUMA_RegistryHelp(ShowNegaCells,"Будут показаны негативные ячейки таблиц.",FALSE); LDPUMA_Registry(&hCutStr,"Резка слипшихся компонент повсеместно!",Root); LDPUMA_RegistryHelp(hCutStr,"Вершина резки слипшихся компонент повсеместно",FALSE); LDPUMA_Registry(&CutStrPrintFILE,"Печать в файл разрезанных компонент повсеместно",hCutStr); LDPUMA_RegistryHelp(CutStrPrintFILE,"Разрешить печать в файл cutstr.res разрезанных компонент повсеместно",FALSE); LDPUMA_Registry(&CutStrD,"Визуальный просмотр результатов резки",hCutStr); LDPUMA_RegistryHelp(CutStrD,"Разрешить визуальный просмотр результатов резки компонент повсеместнов",FALSE); LDPUMA_Registry(&DifferenCutToHistory,"Визуальный просмотр отличий",hCutStr); LDPUMA_RegistryHelp(DifferenCutToHistory,"Разрешить визуальный просмотр отличий от предыдущего варианта",FALSE); LDPUMA_Registry(&hCutComp,"Резка слипшихся компонент",Root); LDPUMA_RegistryHelp(hCutComp,"Запретить резку слипшихся компонент на пересечении линий таблицы",FALSE); LDPUMA_Registry(&CutCompPrintFILE,"Печать в файл разрезанных компонент",hCutComp); LDPUMA_RegistryHelp(CutCompPrintFILE,"Разрешить печать в файл cutcomp.res разрезанных компонент",FALSE); LDPUMA_Registry(&CutCompD,"Визуальный просмотр результатов резки!!",hCutComp); LDPUMA_RegistryHelp(CutCompD,"Разрешить визуальный просмотр результатов резки компонент",FALSE); LDPUMA_Registry(&DifferenCutCompToHistory,"Визуальный просмотр отличий!",hCutComp); LDPUMA_RegistryHelp(DifferenCutCompToHistory,"Разрешить визуальный просмотр отличий от предыдущего варианта",FALSE); LDPUMA_Registry(&hTime,"Контроль времени!!!",Root); LDPUMA_RegistryHelp(hTime,"Разрешить контроль времени",FALSE); LDPUMA_Registry(&hDrawComp,"Прорисовка компонент !!!",Root); LDPUMA_RegistryHelp(hDrawComp,"Прорисовка компонент.",FALSE); // LDPUMA_Registry (&hUseCLine,"Работа с контейнером линий",NULL); list=NULL; prelist=NULL; // list=new CLhstr; // prelist=new CLPrepHstr; LDPUMA_Registry (&Root_CHSTR,"Выделитель строк в нестандартных объектах", Root); const char *pText; /* Корневая вершина */ pText = "<Ответственный тов. Степаненков> \ \n Корневая вершина выделителя строк в нестандартных объектах."; LDPUMA_RegistryHelp (Root_CHSTR, pText, FALSE); /* Положить в контейнер*/ LDPUMA_Registry (&PutToCHSTR,"Положить в контейнер", Root_CHSTR); pText = "Положить объект в контейнер сложных строк"; LDPUMA_RegistryHelp (PutToCHSTR, pText, FALSE); /* Вершина резки на строки*/ LDPUMA_Registry (&CutStrV,"Резка на строки",PutToCHSTR); pText = "Осуществляется резка объектов на строки"; LDPUMA_RegistryHelp (CutStrV, pText, FALSE); LDPUMA_RegVariable (CutStrV,"cut_white",&cut_white,"double"); LDPUMA_RegVariable (CutStrV,"cut_str",&cut_str,"double"); LDPUMA_RegVariable (CutStrV,"inf_let_black",&inf_let_black,"double"); LDPUMA_RegVariable (CutStrV,"inf_str_h",&inf_str_h,"int"); LDPUMA_RegVariable (CutStrV,"inf_str_w",&inf_str_w,"int"); /* Положить в контейнер CSTR*/ LDPUMA_Registry (&PutToCSTR,"Положить в контейнер CSTR", Root_CHSTR); pText = "Выгрузить строки из CHSTR в CSTR"; LDPUMA_RegistryHelp (PutToCSTR, pText, FALSE); /*Вершина прорисовки положенных только что строк*/ LDPUMA_Registry (&StrD,"Прорисовать строки", CutStrV); pText = "Прорисовать строки, которые кладутся в данный момент"; LDPUMA_RegistryHelp (StrD, pText, FALSE); /*Вершина прорисовки строки пикселей при резке*/ LDPUMA_Registry (&StrPix,"Прорисовать строку пикселей при резке", CutStrV); pText = "Прорисовать строку пикселей при резке"; LDPUMA_RegistryHelp (StrPix, pText, FALSE); /*Вершина чистки при резке*/ LDPUMA_Registry (&CutStrDel,"Чистка при резке", CutStrV); pText = "Удалять по возможности мусор при резке"; LDPUMA_RegistryHelp (CutStrDel, pText, FALSE); return TRUE; }
RMARKER_FUNC(Bool32) RMARKER_Init(uint16_t wHeightCode,Handle hStorage) { LDPUMA_Init (0,NULL); // Buffer=NULL; // Buffer=(uchar*)RMARKERAlloc(BufferSize*sizeof(uchar)); // if(!Buffer) // return FALSE; // WorkMem=(uchar*)RMARKERAlloc(WorkMemSize*sizeof(uchar)); // if(!WorkMem) // return FALSE; /*------------------------------------------------------------------------------------------*/ RNEG_Init(wHeightCode,NULL); /*------------------------------------------------------------------------------------------*/ #ifdef _USE_RFILL_ if (!RFILL_Init()) { uint32_t retCode = RFILL_GetReturnCode (); char *pszMsg = RFILL_GetReturnString (retCode); return FALSE; } #endif //_USE_RFILL_ /*------------------------------------------------------------------------------------------*/ LDPUMA_Registry(&hMainTime,SNAP_ROOT_MAIN_TIME_CONTROL,NULL); LDPUMA_Registry(&hPrep,"Подготовка.Верт. лин. проц.",hMainTime); LDPUMA_Registry(&hPicture,"Выделение трив. картинок.",hMainTime); LDPUMA_Registry(&hNegative,"Выделение негативов..",hMainTime); LDPUMA_Registry(&hTableZones,"Выделение зон таблиц..",hMainTime); LDPUMA_Registry(&hLines3,"Линии.Третий проход..",hMainTime); LDPUMA_Registry(&hVCutInZones,"Верт. резка в ЗТ.",hMainTime); LDPUMA_Registry(&hSearchTables,"Поиск таблиц..",hMainTime); LDPUMA_Registry(&hAnalTables,"Анализ структуры таблиц..",hMainTime); LDPUMA_Registry(&hSVLP,"Верт. лин. проц.",hMainTime); LDPUMA_Registry(&hBlocks,"Выделение фрагментов..",hMainTime); LDPUMA_Registry(&hNegaTestCells,"Нег. диаг. ячеек таблиц..",hMainTime); LDPUMA_Registry(&hVertTestCells,"Верт. диаг. ячеек таблиц..",hMainTime); LDPUMA_Registry(&hFon,"Поис фона..",hMainTime); LDPUMA_Registry(&hEnd,"От RMARKER до выделения строк..",hMainTime); LDPUMA_Registry(&hSegment,"Грубое выделение фрагментов...",hMainTime); LDPUMA_Registry(&MainDebug,SNAP_ROOT_MAIN_DEBUG, NULL ); // LDPUMA_Registry (&hUseCLine,"Работа с контейнером линий",NULL); LDPUMA_Registry(&DebugFill,"Поиск фона в таблицах",MainDebug); LDPUMA_RegistryHelp(DebugFill,"Активизация вершины разрешит поиск фона в таблицах.",FALSE); LDPUMA_Registry(&hDebugNeg,"Этап поиска негативов.",NULL); LDPUMA_Registry(&hDebugLinePass3,"Этап оценки линий.",NULL); LDPUMA_Registry(&hDebugLinePass2,"Этап третьего прохода по линиям.",NULL); LDPUMA_Registry(&hDebugVerifLine,"Верификация линий.",NULL); LDPUMA_Registry(&hNegaCellsAuto,"Диагностика негативных ячеек таблиц",MainDebug); LDPUMA_RegistryHelp(hNegaCellsAuto,"Активизация вершины разрешит диагностику негативных ячеек таблиц.",FALSE); LDPUMA_Registry(&hVertCellsAuto,"Этап автоматической вертикальной диагностики ячеек таблиц.",NULL); LDPUMA_Registry(&hVertCells,"Работа с вертикальными ячейками таблиц",NULL); LDPUMA_Registry(&hPrintFileVertCells,"Печать в файл вертикальных ячеек",hVertCells); LDPUMA_RegistryHelp(hPrintFileVertCells,"Разрешить печать в файл vertcell.res вертикальных ячеек таблиц.",FALSE); LDPUMA_Registry(&hNegaCells,"Работа с негативными ячейками таблиц",NULL); LDPUMA_Registry(&hDebugUpDown,"Сверху вниз",hVertCells); LDPUMA_RegistryHelp(hDebugUpDown,"При продавлении вершины вертикальные строки будут считаться типа Сверху-Вниз.",FALSE); LDPUMA_Registry(&hDebugPictures,SNAP_LAYOUT_PICTURES,NULL); LDPUMA_Registry(&hLayout,SNAP_ROOT_LAYOUT,NULL); LDPUMA_RegistryHelp(hZone,"Вершина поиска зон таблиц.",FALSE); LDPUMA_Registry(&hPrintCrossedPics, "Отпись пересекаемых таблицами картинок", hLayout); LDPUMA_RegistryHelp(hPrintCrossedPics, "Печать в файл crossed.txt координат картинок, пересекаеющи зоны таблиц", FALSE); LDPUMA_Registry(&hNoRazrTabl, "Отменить разрезание склеенных таблиц.",hZone); LDPUMA_RegistryHelp(hNoRazrTabl, "Отменить разрезание склеенных таблиц.", FALSE); LDPUMA_Registry(&hNoGiveNeg, "Не сдавать негативы.",hZone); LDPUMA_RegistryHelp(hNoGiveNeg, "Не сдавать негативы.", FALSE); LDPUMA_Registry(&hNoSeePict,"Не учитывать картинки.",hZone); LDPUMA_RegistryHelp(hNoSeePict,"Не учитывать картинки.",FALSE); remove("crossed.txt"); return TRUE; }
void InitDebug() { layout = 0; //Beg of Almi Corr // LDPUMA_Registry(&hDebugLayout,SNAP_ROOT_LAYOUT,NULL); LDPUMA_Registry(&hDebugLayout,SNAP_LAYOUT_LAYOUT,NULL); //End of Almi 05.12.00; не вполне правильно, но и так сойдёт; (не прав был Лёха) LDPUMA_RegVariable(hDebugLayout,"Установить уровень отладки.",&layout,"unsigned char"); LDPUMA_RegistryHelp(hDebugLayout,"В переменных можно установить значение уровня \ отладки от 1 до 4",TRUE); LDPUMA_RegVariable(hDebugLayout,"Коэффициент для выделения заголовков * 2.", &ZagolovokBreakingCoeff,"unsigned int"); //LDPUMA_RegistryHelp(hDebugLayout,"rrrrrrrrrrrrr",TRUE); /* LDPUMA_Registry(&hDebugCancelGreatComp,"Отменить большие компоненты",hDebugLayout); LDPUMA_RegistryHelp(hDebugCancelGreatComp,"Большие компоненты не будут передаваться \ фрагментатору.",FALSE); LDPUMA_Registry(&hDebugCancelPicturesAndTables,"Отменить картинки и таблицы",hDebugLayout); LDPUMA_RegistryHelp(hDebugCancelPicturesAndTables,"Пропустить работу с \ картинками и таблиблицами",FALSE); LDPUMA_Registry(&hShowAlgoritm,"Работа алгоритма",hDebugLayout); LDPUMA_RegistryHelp(hShowAlgoritm,"Показать детально работу фрагментатора. \ Сама эта кнопка не несет информации",FALSE); */ LDPUMA_Registry(&hAlgoritmWork,"Работа алгоритма",hDebugLayout); LDPUMA_RegistryHelp(hAlgoritmWork,"Управление работой фрагментатора.",FALSE); LDPUMA_Registry(&hNotWholeLine,"Отменить разрезание блока по неполной линиии.",hAlgoritmWork); LDPUMA_RegistryHelp(hNotWholeLine,"Отменить разрезание блока по неполной линиии.",FALSE); LDPUMA_Registry(&hNotUseAntonCross,"Отменить алгоритм определения вставляемого фрагмента.",hAlgoritmWork); LDPUMA_RegistryHelp(hNotUseAntonCross,"Отменить предложенный Антоном алгоритм определения вставляемого фрагмента.",FALSE); LDPUMA_Registry(&hHystogramNull,"Отменить обнуление верт. гистограм.",hAlgoritmWork); LDPUMA_RegistryHelp(hHystogramNull,"Отменить обнуление минимумов в вертикальных \ гистограммах, (например в случае текста под картинкой посреди двухколончатого фрагмента).",FALSE); //George, 12.11.01 (dd.mm.yy) LDPUMA_Registry(&hSetTrivAverHeight,"Тривиальное вычисление nAverageHeight",hAlgoritmWork); LDPUMA_RegistryHelp(hSetTrivAverHeight,"Заменить вычисление среднего в поле nAverageHeight " \ "на тривиальную (обычную) формулу вычисления среднего",FALSE); LDPUMA_Registry(&hPageBeforeEditing,"Страница перед началом",hDebugLayout); LDPUMA_RegistryHelp(hPageBeforeEditing,"Показывает компоненты на странице \ перед началом работы",FALSE); LDPUMA_Registry(&hPageMatrix,"Построение PageMatrix",hDebugLayout); LDPUMA_RegistryHelp(hPageMatrix,"Показывает процесс построения PageMatrix \ (матрицы страницы)",FALSE); LDPUMA_Registry(&hInitialBreaking,"Начальное разбиение",hDebugLayout); LDPUMA_RegistryHelp(hInitialBreaking,"Показывает начальное разбиение страницы \ на блоки в результате использования PageMatrix'a",FALSE); LDPUMA_Registry(&hInclineCalculating,"Вычисление угла наклона",hDebugLayout); LDPUMA_RegistryHelp(hInclineCalculating,"Показывает процесс вычисления угла \ наклона страницы",FALSE); /* LDPUMA_Registry(&hBlocksAfterFirstExtraction,"Блоки после первого выделения",hShowAlgoritm); LDPUMA_RegistryHelp(hBlocksAfterFirstExtraction,"Пропустить работу",FALSE); */ LDPUMA_Registry(&hBlocksBreaking,"Разбиение",hDebugLayout); LDPUMA_RegistryHelp(hBlocksBreaking,"Показывает процесс разбиения блоков",FALSE); LDPUMA_Registry(&hBlocksGlueing,"Склейка",hDebugLayout); LDPUMA_RegistryHelp(hBlocksGlueing,"Показывает результат склейки блоков",FALSE); LDPUMA_Registry(&hFirstDustAbsorbtion,"Первый этап добавления дустов",hDebugLayout); LDPUMA_RegistryHelp(hFirstDustAbsorbtion,"Показывает блоки после первого этапа \ добавления дустов",FALSE); LDPUMA_Registry(&hRemoveEmptyBlocks,"Удаление пустых блоков",hDebugLayout); LDPUMA_RegistryHelp(hRemoveEmptyBlocks,"Показывает процесс удаления пустых блоков",FALSE); LDPUMA_Registry(&hSecondDustAbsorbtion,"Второй этап добавления дустов",hDebugLayout); LDPUMA_RegistryHelp(hSecondDustAbsorbtion,"Показывает блоки после второго этапа \ удаления дустов",FALSE); /* LDPUMA_Registry(&hDebugStrings,SNAP_ROOT_STRINGS,NULL); LDPUMA_RegVariable(hDebugStrings,"Установить уровень отладки.",&layout,"unsigned char"); LDPUMA_RegistryHelp(hDebugStrings,"В переменных можно установить значение уровня \ отладки от 5 до 8",TRUE); LDPUMA_Registry(&hShowString,"Показать выделенные строки",hDebugStrings); LDPUMA_RegistryHelp(hShowString,"Строки будут выделяться прямоугольниками.",FALSE); LDPUMA_Registry(&hShowCells,"Показать выделенные ячейки с компонентами",hDebugStrings); LDPUMA_RegistryHelp(hShowCells,"Будут подсвечиваться ячейка и входящие \ в нее компоненты.",FALSE); */ // LDPUMA_Registry(&hUseCLine,"Работа с контейнером линий",NULL); #define REGVAR(a) LDPUMA_RegVariable(hDebugLayout,#a,&a,"short int") # ifdef LT_DEBUG LDPUMA_RegVariable(hDebugLayout,"LT_DebugGraphicsLevel",<_DebugGraphicsLevel,"int"); REGVAR(bDebugTimeFlag); REGVAR(bDebugOptionCalibratePictureRemovingCriteria); REGVAR(bDebugOptionCalibrateDD_RemovingCriteria); REGVAR(bDebugOptionCalibrateLinearRemovingCriteria); # endif REGVAR(bOptionForceOneColumn); REGVAR(bOptionBusinessCardsLayout); REGVAR(bOptionPointSizeAnalysis); REGVAR(bOptionSmartBreaking); REGVAR(bOptionInitialBreakingByPageMatrix); REGVAR(bOptionBlocksRemovingByPageMatrix); REGVAR(bOptionBlocksRemovingByDustDistribution); REGVAR(bOptionSpecialHorizontalCutting); REGVAR(bOptionWhiteStripsBreaking); # ifdef SE_DEBUG REGVAR(SE_DebugGraphicsLevel); # endif # ifdef MA_DEBUG REGVAR(MA_DebugLevel); # endif #undef REGVAR }
Bool32 LDPUMA_Init(uint16_t wHightCode, Handle hStorage) { Bool32 rc = FALSE; #ifdef _DEBUG _CrtDbgReport( _CRT_WARN,NULL,__LINE__,__FILE__, "LDPUMA_Init(%i,%x)\n",wHightCode, hStorage); #endif hDPuma = LoadLibrary("DPUMA.DLL"); if(hDPuma) { Init = (FNDPUMA_Init)GetProcAddress(hDPuma,"DPUMA_Init"); Done = (FNDPUMA_Done)GetProcAddress(hDPuma,"DPUMA_Done"); GetExportData = (FNDPUMA_GetExportData)GetProcAddress(hDPuma,"DPUMA_GetExportData"); SetImportData = (FNDPUMA_SetImportData)GetProcAddress(hDPuma,"DPUMA_SetImportData"); //tanya } if(Init && GetExportData) { if(GetExportData(DPUMA_FNDPUMA_Console,&Console)&& GetExportData(DPUMA_FNDPUMA_CreateSnap,&CreateSnap)&& GetExportData(DPUMA_FNDPUMA_DestroySnap,&DestroySnap)&& GetExportData(DPUMA_FNDPUMA_Stop,&Stop)&& GetExportData(DPUMA_FNDPUMA_IsActive,&IsActive)&& GetExportData(DPUMA_FNDPUMA_StatusLine,&StatusLine)&& GetExportData(DPUMA_FNDPUMA_Registry,&Registry)&& GetExportData(DPUMA_FNDPUMA_Skip,&Skip)&& GetExportData(DPUMA_FNDPUMA_StartLoop,&StartLoop)&& GetExportData(DPUMA_FNDPUMA_LoopNext,&LoopNext)&& GetExportData(DPUMA_FNDPUMA_CreateWindow,&fCreateWindow)&& GetExportData(DPUMA_FNDPUMA_MessageBoxOk,&MessageBoxOk)&& GetExportData(DPUMA_FNDPUMA_MessageBoxYesNo,&MessageBoxYesNo)&& GetExportData(DPUMA_FNDPUMA_WaitUserInput,&WaitUserInput)&& GetExportData(DPUMA_FNDPUMA_DrawLine,&DrawLine)&& GetExportData(DPUMA_FNDPUMA_DrawRect,&DrawRect)&& GetExportData(DPUMA_FNDPUMA_DrawLineTip,&DrawLineTip)&& GetExportData(DPUMA_FNDPUMA_DrawRectTip,&DrawRectTip)&& GetExportData(DPUMA_FNDPUMA_DeleteRects,&DeleteRects)&& GetExportData(DPUMA_FNDPUMA_DeleteLines,&DeleteLines)&& GetExportData(DPUMA_FNDPUMA_GetUserPoint,&GetUserPoint)&& GetExportData(DPUMA_FNDPUMA_GetUserRect,&GetUserRect)&& GetExportData(DPUMA_FNDPUMA_UpdateView,&UpdateView)&& GetExportData(DPUMA_FNDPUMA_DrawRaster,&DrawRaster)&& GetExportData(DPUMA_FNDPUMA_ZoomToRect,&ZoomToRect)&& GetExportData(DPUMA_FNDPUMA_RasterHeader,&RasterHeader)&& GetExportData(DPUMA_FNDPUMA_DrawFocusRect,&fnDrawFocusRect)&& GetExportData(DPUMA_FNDPUMA_RegVariable,&RegVariable)&& GetExportData(DPUMA_FNDPUMA_UnregVariable,&UnregVariable)&& GetExportData(DPUMA_FNDPUMA_GetDIBptr,&GetDIBptr)&& GetExportData(DPUMA_FNDPUMA_DrawString,&DrawString)&& GetExportData(DPUMA_FNDPUMA_DeleteStrings,&DeleteStrings)&& GetExportData(DPUMA_FNDPUMA_SetCallbackWindowProc,&SetCallbackWindowProc)&& GetExportData(DPUMA_FNDPUMA_DeviceToImage,&DeviceToImage)&& GetExportData(DPUMA_FNDPUMA_ImageToDevice,&ImageToDevice)&& GetExportData(DPUMA_FNDPUMA_SetCallbackMainFrameWindowProc,&SetCallbackMainFrameWindowProc)&& GetExportData(DPUMA_FNDPUMA_DestroyWindow,&fDestroyWindow)&& GetExportData(DPUMA_FNDPUMA_SendWindow,&SendWindow)&& GetExportData(DPUMA_FNDPUMA_SendMainWnd,&SendMainWnd)&& GetExportData(DPUMA_FNDPUMA_CSTR_Monitor,&cstr_Monitor)&& GetExportData(DPUMA_FNDPUMA_CSTR_GetPosition,&cstr_GetPosition)&& GetExportData(DPUMA_FNDPUMA_CSTR_SetPosition,&cstr_SetPosition)&& GetExportData(DPUMA_FNDPUMA_DestroyRasterWnd,&DestroyRasterWnd)&& GetExportData(DPUMA_FNDPUMA_CSTR_GetLength,&cstr_GetLength)&& GetExportData(DPUMA_FNDPUMA_ShowCutPoint,&ShowCutPoint)&& GetExportData(DPUMA_FNDPUMA_GetRasterPixel,&GetRasterPixel)&& GetExportData(DPUMA_FNDPUMA_CSTR_Update,&cstr_Update)&& GetExportData(DPUMA_FNDPUMA_SkipEx,&SkipEx)&& GetExportData(DPUMA_FNDPUMA_OpenFile,&fOpenFile)&& GetExportData(DPUMA_FNDPUMA_GetFileName,&fGetFileName)&& GetExportData(DPUMA_FNDPUMA_HandLayout,&fHandLayout)&& GetExportData(DPUMA_FNDPUMA_LockImage,&fLockImage)&& GetExportData(DPUMA_FNDPUMA_RegistryHelp,&RegistryHelp)&& GetExportData(DPUMA_FNDPUMA_SaveFile,&fSaveFile)&& GetExportData(DPUMA_FNDPUMA_ProgressStart, &fProgressStart )&& GetExportData(DPUMA_FNDPUMA_ProgressFinish,&fProgressFinish)&& GetExportData(DPUMA_FNDPUMA_ProgressStep, &fProgressStep )&& GetExportData(DPUMA_FNDPUMA_SetConsoleProperty, &fSetConsoleProperty )&& GetExportData(DPUMA_FNDPUMA_CreateHistogramm, &fCreateHistogramm )&& GetExportData(DPUMA_FNDPUMA_AddPointToHistogramm, &fAddPointToHistogramm )&& GetExportData(DPUMA_FNDPUMA_DoHistogramm, &fDoHistogramm )&& GetExportData(DPUMA_FNDPUMA_DestroyHistogramm, &fDestroyHistogramm )&& GetExportData(DPUMA_FNDPUMA_GetWindowHandle,&fGetWindowHandle)&& GetExportData(DPUMA_FNDPUMA_GetPrevSkipOwner,&fGetPrevSkipOwner)&& GetExportData(DPUMA_FNDPUMA_AllocHook,&fAllocHook)&& GetExportData(DPUMA_FNDPUMA_ConsoleClear,&fConsoleClear)&& GetExportData(DPUMA_FNDPUMA_ConsoleGetCurLine,&fConsoleGetCurLine)&& GetExportData(DPUMA_FNDPUMA_SetFileName,&fSetFileName )&& GetExportData(DPUMA_FNDPUMA_FOpen,&fFOpen )&& GetExportData(DPUMA_FNDPUMA_FClose,&fFClose)&& GetExportData(DPUMA_FNDPUMA_FPrintf1024,&fFPrintf1024)&& GetExportData(DPUMA_FNDPUMA_FPuts,&fFPuts)&& GetExportData(DPUMA_FNDPUMA_RasterText,&RasterText)&& SetImportData != NULL/*tanya*/ ) { rc = Init(wHightCode,hStorage); if(rc) { #ifdef _DEBUG // На случай, если вызывается не один раз. _CRT_ALLOC_HOOK pHook = _CrtSetAllocHook(__DPUMA__AllocHook__); if(__DPUMA__AllocHook__ != pHook) PrevAllocHook = pHook; #endif fCreateWindow("Main",NULL); LDPUMA_Registry(&hWriteFile,"Выполнять отладочную запись в файл.",NULL); LDPUMA_RegistryHelp(hWriteFile,"Разрешает отладочную запись функциями DPUMA.",FALSE); } } } return rc; }