Hallo Herr Reszel,
da stellen Sie mir ja Aufgaben ;-)
Ein Blick in den Code der Illustrator 8 EPS-Datei offenbart recht schnell was hier schief läuft (meiner Meinung nach ein klassischer Denkfehler der/des Entwickler(s)):
Illustrator 8 ermittelte mit dieser Routine den flatness Wert:
/Ar
{
72 exch div
0 dtransform dup mul exch dup mul add sqrt
dup 1 lt
{
pop 1
} if
setflat
} def
Wie man sieht, arbeitet man mit der Funktion dtransform (delta transform) welche einen übergebenen x- und y-Vektor mit Hilfe der aktuellen PostScript Transformation Matrix (CTM) umrechnet. Diese Funktion ist damit selbstverständlich skalierungsabhängig, da die Skalierung der EPS-Datei ein Änderung der CTM bewirkt.
Somit ist der errechnete flatness Wert u.a. skalierungsabhängig.
Böser Fehler!
Ein Blick in den Code von Illustrator 10 (und höchstwahrscheinlich ist es bei Version 9 ebenso) zeigt dagegen diese Funktion zur Bestimmung des flatness Werts:
/path_rez
{
dup 0 ne{
72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt exch div
dup 1 lt{
pop 1
}if
setflat
}{
pop
}ifelse
}def
Der kleine aber feine Unterschied ist, dass nun nicht die CTM als Basis für die "Delta Transformation" Verwendung findet, sondern die PostScript Default Matrix, welche absolut skalierungsunabhängig ist.
Somit resultiert hier immer der selbe flatness Wert, der ausschließlich von der Interpreter-Auflösung abhängig ist.
Man kann noch eine andere interessante "Kleinigkeit" entdecken:
Wenn die im Illustrator 10 Dokument definierte Dokumentauflösung 0 dpi ist, dann wird die Berechnung des flatness Werts gänzlich übersprungen und somit kommt der aktuelle flatness Wert des PostScript Interpreters zum Einsatz. Dieser ist in den meisten Fällen standardmässig 1.0 (zu prüfen mit dem Einzeiler "currentflat ="). Allerdings läuft man Gefahr, dass der flatness Wert zuvor schon durch ein schlecht programmiertes EPS oder ähnliches verbogen wurde. Deshalb würde ich diesen Trick mit 0 dpi eher nicht anwenden.
Fazit:
Der flatness Wert ist wie bereits mehrfach geschrieben skalierungsunabhängig, außer man hat es mit fehlerhaft programmierten Layoutprogrammen wie z.B. Adobe Illustrator 8 zu tun.
Falsche, also zu grobe flatness-Werte lassen sich wunderbar mit Hilfe der kostenlosen Creo Distiller Assistant Startup-Datei im PDF-Workflow geradebiegen.
Mit freundlichen Grüßen
Robert Zacherl
************************
IMPRESSED GmbH
http://www.impressed.de