]> git.donarmstrong.com Git - bin.git/blobdiff - make_djvu
add reset usb bus command
[bin.git] / make_djvu
index 1a470a5a21a250963759c29625ef3d4b7e8740a5..17262008693ae6e490340186cbf240e960a96ab6 100755 (executable)
--- 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';