#!/bin/sh # # converteps # # Konvertiere EPS-Files nach Bitmap. # Nutzt "convert". Aufgabe: Berechnung des optimalen # Wertes für "density". # # 12.05.1999, Winfried.Beer@dlr.de; feel free to use it # # if [ $# -lt 4 ]; then echo `basename $0`' [-geom widthxheight] [-other convert options] ' exit 1 fi # -- Auswertung der Parameter argv="$*" file="" fileout="" geom="200x100" while [ $# -gt 0 ]; do case "$1" in -geom*) geom=$2 gwidth=`echo $geom | sed -e 's/-.*$//' -e 's/[^0-9x]//g' | awk '{FS="x";print $1}'` gheight=`echo $geom | sed -e 's/-.*$//' -e 's/[^0-9x]//g' | awk '{FS="x";print $2}'` shift shift;; *) file=$fileout fileout=$1 shift;; esac done # -- Ermittlung der Dateinamen base=$file suff=`echo $base | grep '^.*\..*$' | sed -e 's/^.*\(\.[^\.]*\)$/\1/'` base=`echo $base | sed -e 's/\.[^\.]*$//'` # komprimiert mit gzip? suffcpr="" zcat="cat" if [ "$suff" = ".gz" ]; then suffcpr=$suff zcat="gunzip -c" suff=`echo $base | grep '^.*\..*$' | sed -e 's/^.*\(\.[^\.]*\)$/\1/'` base=`echo $base | sed -e 's/\.[^\.]*$//'` fi if [ "$suff" != ".eps" -a "$suff" != ".epsi" -a "$suff" != ".ps" ]; then echo "$file has no PostScript suffix." exit 1 fi # -- get BoundingBox bb=`$zcat <$file | tr '\r' '\n' | egrep '^%%BoundingBox: |^PageBoundingBox: ' | head -1` if [ "$bb" = "" -o "$suff" = ".ps" ]; then # DIN A4 bb='%%BoundingBox: 0 0 595 842' fi # -- page option for PostScript page="" if [ "$suff" = ".ps" ]; then # DIN A4 page="-page 595!x842!+0+0" argv=`echo "$argv" | awk '{$NF="GIF87:"$NF; print}'` fi # -- get Orientation (only plain PostScript) rotate="" if [ "$suff" = ".ps" ]; then a=`$zcat < $file | tr '\r' '\n' | head -20 | grep '^%DVIPS'` if [ "$a" != "" ]; then # LaTeX-Folien a=`$zcat $file | head -20 | grep -s '^%%Orientation: Landscape'` if [ "$a" != "" ]; then # LaTeX-Querformat rotate="-rotate 270" t="$gwidth" gwidth="$gheight" gheight="$t" fi else a=`$zcat $file | dd bs=1024 count=50 2>&- | grep -s '^/mysetup ' | head -1 | awk '{if($3==0){print 90}}'` if [ "$a" != "" ]; then # Microsoft-PS-Querformat rotate="-rotate $a" t="$gwidth" gwidth="$gheight" gheight="$t" fi fi fi # -- compute density den=`(echo $gwidth"x"$gheight | sed -e 's/-.*$//' -e 's/[^0-9x]//g' ; echo $bb) | awk ' NR==1 {oldfs=FS;FS="x"; gw=$1; gh=$2; if (gw=="") {gw=10000}; if (gh=="") {gh=10000}; FS=oldfs} NR==2 {w=$4-$2+1; h=$5-$3+1; if ((w/h)>(gw/gh)) { den=gw/w*72; }else{ den=gh/h*72; } print den; }'` #echo "convert $page $rotate -density $den $argv" convert $page $rotate -density $den $argv