2 # make_djvu converts images to a djvu document
3 # and is released under the terms of the GNU GPL version 3, or any
4 # later version, at your option. See the file README and COPYING for
6 # Copyright 2014 by Don Armstrong <don@donarmstrong.com>.
17 make_djvu - converts images to a djvu document
21 make_djvu [options] image1 [image2 ...]
24 --output, -o output file (Default out.djvu)
25 --debug, -d debugging level (Default 0)
26 --help, -h display this help
27 --man, -m display manual
35 Output file (default out.djvu)
39 Debug verbosity. (Default 0)
43 Display brief usage information.
60 my %options = (output => 'out.djvu',
68 'debug|d+','help|h|?','man|m');
70 pod2usage() if $options{help};
71 pod2usage({verbose=>2}) if $options{man};
73 $DEBUG = $options{debug};
77 push @USAGE_ERRORS,"You must provide at least one image file";
80 pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS;
83 for my $tiff (@ARGV) {
84 my $base_name = $tiff;
85 $base_name =~ s/\.[^\.]+$//;
86 system('cjb2',$tiff,$base_name.'.djvu');
87 system('tesseract',$tiff,$base_name.'.ocr');
88 my $fh = IO::File->new($base_name.'.ocr','r');
89 my $wf = IO::File->new($base_name.'.txt','w');
90 print {$wf} "(page 0 0 1 1\n";
94 $line =~ s/\"/\\\"/g ;
95 print {$wf} "(line 0 0 1 1 \"$line\")\n" ;
101 unlink($base_name.'.ocr') if -e $base_name.'.ocr';
102 system('djvused',$base_name.'.djvu','-e','select 1; remove-txt','-s');
103 system('djvused',$base_name.'.djvu','-e','select 1; set-txt '.$base_name.'.txt','-s');
104 unlink($base_name.'.txt') if -e $base_name.'.txt';
105 push @djvu_files,$base_name.'.djvu';
108 system('djvm','-c',$options{output},@djvu_files);