tesseract/ccmain/tessembedded.cpp

111 lines
3.5 KiB
C++
Raw Normal View History

/**********************************************************************
* 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();
}