Re: [Debian]:bounding box zu gross
On Thu, Mar 09, 2000 at 11:24:42AM +0100, Andreas Schuldei wrote / Andreas Schuldei hat am Thu, Mar 09, 2000 at 11:24:42AM +0100 geschrieben:
> Ich habe einen haufen eps-Grafiken, bei denen die Bounding Box z.T.
> deutlich zu gross ist.
>
> Ich moechte diese Bilder im Batch-Verfahren mit einer optimalen (=genau
> passenden) bbox versehen. kann gs das? Mit dem ps2epsi-script habe ich
> keine befriedigenden Ergebnisse erziehlt, weil die Bounding box dann zum
> Teil im Bild lag. :-(
Hi,
Ich glaube eher, das Problem liegt in der Erzeugung der eps-Graphiken. woher
kommen die denn? Ich schreibe zZ eine Arbeit in TeX, die Bilder kommen von
Win$-Programmen -> export eps. Klappt soweit ganz gut, ich habe das
eps2epsi-Script allerdings noch etwas angepasst, so daß der ganze
Druckerspezifische Quatsch rausfliegt, sowie diese [%% Aladdin Ghopstscript
%%]-Meldung beim Anzeigen der Bilder.
Die BB stimmt im übrigen glaube ich schon vorher. Ich muß allerdings sagen,
daß ich mich da kaum ddrum gekümmert habe, nur gefreut, daß es klappte :-)
Hoffe, es hilft etwas..
Script folgt:
-----------------------------------
#!/bin/sh
if test -n "`type -p mktemp`" ; then
tmpfile="`mktemp /tmp/ps2epsiXXXXXX`" || exit 1
else
tmpfile=/tmp/ps2epsi$$
rm -f $tmpfile
if [ -e $tmpfile ] ; then
echo "$0: Our temporary file $tmpfile already exists." 1>&2
exit 1
fi
fi
trap "rm -rf $tmpfile" 0 1 2 3 7 13 15
export outfile
if [ $# -lt 1 -o $# -gt 2 ]; then
echo "Usage: `basename $0` file.ps [file.eps]" 1>&2
exit 1
fi
infile=$1;
if [ $# -eq 1 ]
then
case "${infile}" in
*.ps) base=`basename ${infile} .ps` ;;
*.cps) base=`basename ${infile} .cps` ;;
*.eps) base=`basename ${infile} .eps` ;;
*.epsf) base=`basename ${infile} .epsf` ;;
*.prn) base=`basename ${infile} .prn` ;;
*) base=`basename ${infile}` ;;
esac
outfile=${base}.eps
else
outfile=$2
fi
echo "Processing ${infile} -> ${outfile}"
ls -l ${infile} |
awk 'F==1 {
cd="%%CreationDate: " $6 " " $7 " " $8;
t="%%Title: " $9;
f="%%For:" U " " $3;
c="%%Creator: Ghostscript ps2epsi from " $9;
next;
}
/^%!/ {next;}
/^%%Title:/ {t=$0; next;}
/^%%Creator:/ {c=$0; next;}
/^%%CreationDate:/ {cd=$0; next;}
/^%%For:/ {f=$0; next;}
!/^%/ {
print "/ps2edict 30 dict def";
print "ps2edict begin";
# print "/epsititle (" t "\\n) def";
# print "/epsicreator (" c "\\n) def";
# print "/epsicrdt (" cd "\\n) def";
# print "/epsifor (" f "\\n) def";
print "/epsititle (" t ") def";
print "/epsicreator (" c ") def";
print "/epsicrdt (" cd ") def";
print "/epsifor (" f ") def";
print "end";
exit(0);
}
' U="$USERNAME$LOGNAME" F=1 - F=2 ${infile} >$tmpfile
gs -q -dNOPAUSE -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <${infile} 1>&2
rm -f $tmpfile
(
cat << BEGINEPS
save
countdictstack
mark
newpath
/showpage {} def
%%EndProlog
%%Page 1 1
BEGINEPS
cat ${infile} |
tr -d '\015' |
sed -e '/^%%BeginPreview:/,/%%EndPreview$/d'\
-e '/^%!PS-Adobe/d'\
-e '/^%%+/d'\
-e '/ProductName/d'\
-e '/^%%PageTrailer/q' |
sed -e '/^%%[A-Za-z][A-Za-z]*$/d'\
-e '/^%%[A-Za-z][A-Za-z]*: /d'
# -e '/^%%Pagetrailer/,/%%EOF$/d'\
cat << ENDEPS
%%Trailer
cleartomark
countdictstack exch sub { end } repeat
restore
%%EOF
ENDEPS
) >> ${outfile}
exit 0
-------------------------
--
----------------------------------------------------------------
I. Reimann reimann@uni-muenster.de
Inst. fuer Angew. Physik +49 251 83-33527 (fon)
Correnstr. 2-4 +49 251 83-33513 (fax)
D-48149 Muenster
Germany
----------------------------------------------------------------
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 737
Reply to: