You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.9 KiB
66 lines
1.9 KiB
4 years ago
|
#!/bin/bash
|
||
|
|
||
|
function help () {
|
||
|
echo "Usage: $0 <inputfile> [<outputfile>]"
|
||
|
echo "Takes a pdf file, removes any vertical scanner lines, and outputs it as output.pdf if not otherwise specified"
|
||
|
echo " -e remove lines on even pages. First page is page 0 (even)"
|
||
|
echo " -o remove lines on odd pages. First page is page 0 (even)"
|
||
|
echo " -a remove lines on all pages"
|
||
|
echo " -c increase contrast of pdf file"
|
||
|
echo " -h display this output"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
while getopts 'eoaclh' opt ; do
|
||
|
case "$opt" in
|
||
|
# v) verbosity=VERBOSE ;;
|
||
|
# q) verbosity=QUIET;;
|
||
|
e) even='true';;
|
||
|
o) odd='true';;
|
||
|
a) even='true'; odd='true';;
|
||
|
c) contrast='true';;
|
||
|
h) help ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
input_file=${@:$OPTIND:1}
|
||
|
output_file=${@:($OPTIND +1):1}
|
||
|
output_file=${output_file:-'output.pdf'}
|
||
|
|
||
|
if [ -z "$input_file" ]; then
|
||
|
help
|
||
|
fi
|
||
|
|
||
|
tmp_dir=$(mktemp -d -t processor-images-XXXXX)
|
||
|
|
||
|
pdfimages -j "$input_file" "$tmp_dir/page"
|
||
|
|
||
|
for file in "$tmp_dir"/page-*.jpg
|
||
|
do
|
||
|
filename="${file##*/}"
|
||
|
page_nr="${filename:5:3}"
|
||
|
page_nr=$(echo $page_nr | sed 's/^0*//') # Remove leading zeros
|
||
|
if [ -z "$page_nr" ]
|
||
|
then
|
||
|
page_nr=0
|
||
|
fi
|
||
|
|
||
|
echo "Pagenr: $page_nr"
|
||
|
if [ "$contrast" = 'true' ]
|
||
|
then
|
||
|
echo "Increase contrast"
|
||
|
mogrify -level 25% $file
|
||
|
fi
|
||
|
|
||
|
page_even='true'; [ $((page_nr%2)) -eq 1 ] && page_even='false'
|
||
|
if ( [ "$page_even" = 'true' ] && [ "$even" = 'true' ] ) || ( [ "$page_even" = 'false' ] && [ "$odd" = 'true' ] )
|
||
|
then
|
||
|
echo Remove line
|
||
|
mogrify -morphology bottomhat "1x100:0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0" -negate $file
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
convert $tmp_dir/page-*.jpg "$output_file"
|
||
|
rm -rf $tmp_dir
|
||
|
echo "Done! Saved output to $output_file"
|