mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-11-25 11:39:06 +08:00
7870d67c21
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@157 d0cd1f9f-072b-0410-8dd7-cf729c803f20
111 lines
3.5 KiB
C++
111 lines
3.5 KiB
C++
/**********************************************************************
|
|
* 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();
|
|
}
|