Seite 1 von 1

InputSlot aus einem PS-File

Verfasst: Do 29 Sep, 2022 08:56
von dobrist
Gibt es eine Möglichkeit, in einem Printjob (Postscript File) verschiedene InputSlots anzuwählen?

Re: InputSlot aus einem PS-File

Verfasst: Mi 05 Okt, 2022 10:54
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

Re: InputSlot aus einem PS-File

Verfasst: Mi 05 Okt, 2022 15:44
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

Re: InputSlot aus einem PS-File

Verfasst: Fr 07 Okt, 2022 17:31
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.

Re: InputSlot aus einem PS-File

Verfasst: Do 13 Okt, 2022 16:00
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?

Re: InputSlot aus einem PS-File

Verfasst: Fr 14 Okt, 2022 10:17
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.