X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=make_djvu;h=17262008693ae6e490340186cbf240e960a96ab6;hb=HEAD;hp=1a470a5a21a250963759c29625ef3d4b7e8740a5;hpb=a1d9e1a31b99f4da8605b1d005fcb74f8c9b65fe;p=bin.git diff --git a/make_djvu b/make_djvu index 1a470a5..1726200 100755 --- a/make_djvu +++ b/make_djvu @@ -79,13 +79,29 @@ if (not @ARGV) { pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS; +sub is_bitonal { + my $file = shift; + open(my $fh,'-|','identify',$file) or die "Unable to execute identify $file: $!"; + local $/; + my $res = <$fh>; + if ($res =~ /Bilevel/) { + return 1; + } + return 0; +} + my @djvu_files; for my $tiff (@ARGV) { my $base_name = $tiff; $base_name =~ s/\.[^\.]+$//; - system('cjb2',$tiff,$base_name.'.djvu'); + if (is_bitonal($tiff)) { + system('cjb2',$tiff,$base_name.'.djvu'); + } else { + system('convert',$tiff,$base_name.'.ppm'); + system('c44','-dpi',600,$base_name.'.ppm',$base_name.'.djvu'); + } system('tesseract',$tiff,$base_name.'.ocr'); - my $fh = IO::File->new($base_name.'.ocr','r'); + my $fh = IO::File->new($base_name.'.ocr.txt','r'); my $wf = IO::File->new($base_name.'.txt','w'); print {$wf} "(page 0 0 1 1\n"; if (defined $fh) { @@ -98,7 +114,7 @@ for my $tiff (@ARGV) { } print {$wf} ")\n"; close $wf; - unlink($base_name.'.ocr') if -e $base_name.'.ocr'; + unlink($base_name.'.ocr.txt') if -e $base_name.'.ocr.txt'; system('djvused',$base_name.'.djvu','-e','select 1; remove-txt','-s'); system('djvused',$base_name.'.djvu','-e','select 1; set-txt '.$base_name.'.txt','-s'); unlink($base_name.'.txt') if -e $base_name.'.txt';