/********************************************************************** * File: tessembedded.cpp * Description: Main program for merge of tess and editor. * Author: Marius Renn * Created: Sun Oct 21 2006 * * (C) Copyright 1992, Hewlett-Packard Ltd. ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** http://www.apache.org/licenses/LICENSE-2.0 ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. * **********************************************************************/ #include "mfcpch.h" #include "applybox.h" #include "control.h" #include "tessvars.h" #include "tessedit.h" #include "pageres.h" #include "imgs.h" #include "varabled.h" #include "tprintf.h" #include "tessembedded.h" #include "stderr.h" #include "notdll.h" #include "mainblk.h" #include "globals.h" #include "tfacep.h" #include "callnet.h" void tessembedded_read_file(STRING &name, BLOCK_LIST *blocks) { int c; //input character FILE *infp; //input file BLOCK_IT block_it(blocks); //iterator BLOCK *block; //current block ICOORD page_tr; //topright of page char *filename_extension; block_it.move_to_last (); // ptr to last dot filename_extension = strrchr (name.string (), '.'); #ifdef __UNIX__ if (strcmp (filename_extension, ".pb") == 0) { tprintf ("Converting from .pb file format.\n"); //construct blocks read_and_textord (name.string (), blocks); } else #endif //xiaofan, a hack here if (strcmp (filename_extension, ".tif") == 0) { // tprintf( "Interpreting .bl file format.\n" ); //construct blocks edges_and_textord (name.string (), blocks); } else { if ((strcmp (filename_extension, ".pg") == 0) || // read a .pg file // or a .sp file (strcmp (filename_extension, ".sp") == 0)) { tprintf ("Reading %s file format.\n", filename_extension); infp = fopen (name.string (), "r"); if (infp == NULL) CANTOPENFILE.error ("pgeditor_read_file", EXIT, name.string ()); //can't open file while (((c = fgetc (infp)) != EOF) && (ungetc (c, infp) != EOF)) { //get one block = BLOCK::de_serialise (infp); //add to list block_it.add_after_then_move (block); } fclose(infp); } } } int init_tessembedded(const char *arg0, const char *textbase, const char *configfile, int configc, const char *const *configv) { main_setup(arg0, textbase, configc, configv); debug_window_on.set_value (FALSE); static char c_path[MAX_PATH]; //path for c code strcpy (c_path, datadir.string ()); c_path[strlen (c_path) - strlen (m_data_sub_dir.string ())] = '\0'; demodir = c_path; start_recog(configfile, textbase); init_net(); return 0; } void end_tessembedded() { end_recog(); }