InputSlot aus einem PS-File

Tipps und Tricks
Antworten
dobrist
Beiträge: 3
Registriert: Do 29 Sep, 2022 08:46

InputSlot aus einem PS-File

Beitrag von dobrist »

Gibt es eine Möglichkeit, in einem Printjob (Postscript File) verschiedene InputSlots anzuwählen?
zedonet
Administrator
Beiträge: 1631
Registriert: Fr 29 Sep, 2006 13:10

Re: InputSlot aus einem PS-File

Beitrag von zedonet »

Ja das ist möglich. Die entsprechenden Postscript-Befehle sind der PPD-Datei zu entnehmen

/etc/cups/ppd/<druckername>.ppd

dort nach "*OpenUI *InputSlot" suchen.

In der PPD-Datei ist z.B. für einen Epson WF-7210 Drucker folgender Abschnitt zu finden
*OpenUI *InputSlot/Papierzufuhr: PickOne
*OrderDependency: 10 AnySetup *InputSlot
*DefaultInputSlot: AutomaticFeed
*InputSlot AutomaticFeed/Automatisch: "<</zedoInputSlot(AutomaticFeed)>>pop <</MediaPosition 0>>setpagedevice"
*InputSlot Cassette1/Kassette 1: "<</zedoInputSlot(Cassette1)>>pop <</MediaPosition 1>>setpagedevice"
*InputSlot Cassette2/Kassette 2: "<</zedoInputSlot(Cassette2)>>pop <</MediaPosition 2>>setpagedevice"
*InputSlot RearFeed/hinterer Einzug: "<</zedoInputSlot(RearFeed)>>pop <</MediaPosition 3>>setpagedevice"
*CloseUI: *InputSlot
Die Umschaltung auf "Cassette1" geschieht mit folgender Zeile in der Postscript-Druckdatei:

Code: Alles auswählen

<</zedoInputSlot(Cassette1)>>pop <</MediaPosition 1>>setpagedevice
dobrist
Beiträge: 3
Registriert: Do 29 Sep, 2022 08:46

Re: InputSlot aus einem PS-File

Beitrag von dobrist »

Danke für die Antwort.

Das habe ich natürlich schon vor meiner Anfrage probiert, es funktioniert nicht, es wird immer Cassette 1 benutzt.
Die entsprechenden Zeilen wurden aus /usr/share/cups/model/turboprint/Epson_EcoTank_ET16650.ppd entnommen.

PS-File:
/Helvetica findfont 24 scalefont setfont
<</zedoInputSlot(Cassette1)>>pop <</MediaPosition 2>>setpagedevice
100 500 moveto (sollte aus Cassette 1 kommen) show
showpage
<</zedoInputSlot(Cassette2)>>pop <</MediaPosition 3>>setpagedevice
100 500 moveto (sollte aus Cassette 2 kommen) show
showpage
zedonet
Administrator
Beiträge: 1631
Registriert: Fr 29 Sep, 2006 13:10

Re: InputSlot aus einem PS-File

Beitrag von zedonet »

Stimmt, so einfach ist es nicht. TurboPrint verlässt sich auf die DSC-konforme Strukturierung der Datei, damit sieht das Dokument ungefähr so aus:
%!PS-Adobe-3.0
%%Creator: Qt
%%Title: Testdokument
%%CreationDate: Fr Okt 7 18:21:34 2022
%%Orientation: Portrait
%%DocumentFonts: ArialMT AndaleMono
%%For: (florian)
%RBINumCopies: 1
%%Pages: (atend)
%%BoundingBox: (atend)
%%BeginSetup
%%BeginFeature: *InputSlot Cassette1
<</zedoInputSlot(Cassette1)>>pop <</MediaPosition 1>>setpagedevice
%%EndFeature
%%EndSetup
%%Page: 1 1
%%PageBoundingBox: 0 0 594 840
%%BeginPageSetup
%%EndPageSetup
/Helvetica findfont 24 scalefont setfont
100 500 moveto (sollte aus Cassette 1 kommen) show
showpage
%%Trailer
%%Pages: 1
%%BoundingBox: 0 0 594 840
%%EOF
Wichtig für TurboPrint sind dabei die Zeilen
%!PS-Adobe-3.0
%%BeginSetup
%%BeginFeature: *InputSlot RearFeed
<</zedoInputSlot(RearFeed)>>pop <</MediaPosition 3>>setpagedevice
%%EndSetup
und es gibt die Einschränkung, dass zwei Dokumente gesendet werden müssen, um Seiten aus zweierlei Schächten zu drucken.
dobrist
Beiträge: 3
Registriert: Do 29 Sep, 2022 08:46

Re: InputSlot aus einem PS-File

Beitrag von dobrist »

Danke für die Antwort.

Mit der Tatsache, dass TurboPrint Files nach der DSC benötigt, kann ich leben, obwohl es eigenlich nicht dem PostScript Standard entspricht.

Dass es zwei Printjobs braucht, um aus zwei Schächten zu drucken ist (gelinde gesagt) äusserst unschön.
Auf einem "echten" PS-Drucker funktioniert das problemlos (getestet auf einem Kyocera P3045dn).
Wird dieser Fehler in einer nächsten Version behoben?
zedonet
Administrator
Beiträge: 1631
Registriert: Fr 29 Sep, 2006 13:10

Re: InputSlot aus einem PS-File

Beitrag von zedonet »

Unter CUPS/Linux erhält der Treiber die Papierschachteinstellung nur einmal für das ganze Dokument, aus diesem Grund teilen auch Anwendungen wie LibreOffice Dokumente, bei denen Seiten aus unterschiedlichen Schächten bedruckt werden sollen, in mehrere Druckaufträge auf.

Wir prüfen aber gerne, ob und welche Lösungsmöglichkeiten es gibt.
Antworten