[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: