package ocraction; use strict; use cgiactions::baseaction; use dbutil; use ghtml; BEGIN { # unshift (@INC, "$ENV{'GSDLHOME'}/perllib/cpan/perl-5.8"); require XML::Rules; } @ocraction::ISA = ('baseaction'); my $action_table = { "preformOcr" => { 'compulsory-args' => [ "d", "imagename" ], 'optional-args' => [] }, "setText" => { 'compulsory-args' => [ "d", "newtext" ], 'optional-args' => [] } }; sub new { my $class = shift (@_); my ($gsdl_cgi,$iis6_mode) = @_; my $self = new baseaction($action_table,$gsdl_cgi,$iis6_mode); return bless $self, $class; } sub preformOcr { my $self = shift @_; my $collection = $self->{'collect'}; my $site = $self->{'site'}; my $gsdl_cgi = $self->{'gsdl_cgi'}; my $docId = $self->{'d'}; my $imagename = $self->{'imagename'}; # Change URL style '/' to Windows style $imagename =~ s/\//\\/g; my $indexDir = "C:\\Users\\Bryce\\Desktop\\Research\\greenstone3-svn-bryce64\\web\\sites\\localsite\\collect\\jonesmin\\"; ##my $hashDir = $archivesDir . substr($docId,0,8) . ".dir\\"; my $imageFile = $indexDir . $imagename; my $outputFile = $ENV{'TEMP'} . "\\out"; my $cmd = "tesseract $imageFile $outputFile"; ## print STDERR "\n\n CMD=\n$cmd \n\n"; my $status = system($cmd); if($status != 0) { print STDERR "\n\n Fail to run \n $cmd \n $! \n\n"; } if (open (FILE, "<$outputFile" . ".txt")==0) { $gsdl_cgi->generate_error("Unable to open file containing OCR'd text:
$!"); return; } my $result = ""; my $line; while(defined ($line=)) { $result .= $line; } close FILE; unlink($outputFile . ".txt"); $gsdl_cgi->generate_ok_message($result); } sub setText { my $self = shift @_; my $collection = $self->{'collect'}; my $site = $self->{'site'}; my $docId = $self->{'d'}; my $newtext = $self->{'newtext'}; } 1;