FreeHand 3.1-PPD-Kompatibilität

Aus Knowledgebase
Version vom 26. Dezember 2011, 15:52 Uhr von PoC (Diskussion | Beiträge) (→‎Beispiel: Typo)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Aldus FreeHand 3.1 kommt mit manchen Druckerbeschreibungsdateien[1] nicht zurecht. Ruft man die FreeHand-spezifischen Einstellungen im Druckerdialog auf und stellt den Druckertyp auf eine inkompatible PPD, wird ein interner Fehler gemeldet und der Druckdialog wird abgebrochen.

PPDs unter FreeHand 3

PPDs, die von FreeHand benutzt werden sollen, müssen zwingend die Endung .ppd aufweisen und in Systemordner:Aldus:PPDs liegen. Aliasdateien, die auf globale PPDs im Druckordner verweisen, werden ordnungsgemäß eingebunden.

Probleme mit PPDs

FreeHand besitzt (farbabhängige) Rasterwinkeleinstellungen, die wiederum von der gewählten Auflösung abhängen. FreeHand kommt nicht mit PPDs zurecht, welche eine Auswahl der zu verwendenden Auflösung erlauben, zum Beispiel weil das jeweilige Druckermodell dies beherrscht. Stattdessen ist es unumgänglich, für jede zu verwendende Auflösung eine eigene PPD anzulegen und in deren Dateinamen auf die Auflösung hinzuweisen.

Beispiel

Dieser Ausschnitt der PPD provoziert die Fehlfunktion:

*% PostScript(R) Printer Description File
*% Copyright 2002 Hewlett-Packard Company.
*% PPD for HP LaserJet 5100 Series
*%===================================
*%              Resolution
*%===================================
*% Select Printer Resolution
*OpenUI *Resolution/Printer Resolution: PickOne
*DefaultResolution: 600x600dpi
*OrderDependency: 5 DocumentSetup  *Resolution
*Resolution 300x300dpi/300 dpi: "
    <</HWResolution [300 300]>> setpagedevice"
*End
*Resolution 600x600dpi/600 dpi: "
    <</HWResolution [600 600]>> setpagedevice"
*End
*Resolution 1200x1200dpi/ProRes 1200: "
    <</HWResolution [1200 1200]>> setpagedevice"
*End
*?Resolution: "
  save
    currentpagedevice /HWResolution get
    0 get
    (          ) cvs print
    (dpi)
    = flush
  restore
"
*End
*CloseUI: *Resolution

Die Fehlfunktion wird bereits durch die Anweisungen DefaultResolution bzw. OrderDependency hervorgerufen.

Der fehlerbereinigte, auf 300 dpi festgelegte PPD-Ausschnitt sieht wie folgt aus:

*% PostScript(R) Printer Description File
*% Copyright 2002 Hewlett-Packard Company.
*% PPD for HP LaserJet 5100 Series
*%===================================
*%              Resolution
*%===================================
*% Select Printer Resolution
<</HWResolution [300 300]>> setpagedevice
*?Resolution: "
  save
    currentpagedevice /HWResolution get
    0 get
    (          ) cvs print
    (dpi)
    = flush
  restore
"
*End

Auf die Auswahl via OpenUI wird ebenso verzichtet wie auf die einzelnen Menüpunkte Resolution. Stattdessen steht die jeweils gewünschte Auflösung (/HWResolution) hartkodiert ohne Bedingungen im Programmtext.

Fußnoten