PPD custom options
Kurt Pfeifle
k1pfeifle at gmx.net
Sat Oct 27 07:33:25 PDT 2007
Franz Pfoertsch wrote:
> Hello
>
> I need some more explanation of the ppd custom options http://www.cups.org/documentation.php/spec-ppd.html
>
> I try to print into a "mailbox" of a multifunction device from
> Canon (ir C2880). All selections are done by Canon PJLs.
>
> so I expandet the PPD with
>
> + *% === Job Control Language ==
> +
> + *JCLBegin: "<1B>%-12345X at PJL JOB<0A>"
> + *JCLToPSInterpreter: "@PJL ENTER LANGUAGE = Postscript <0A>"
> + *% JCLEnd: "<1B>%-12345X at PJL EOJ <0A><1B>%-12345X"
> +
> +
> + *% Base JCL key code option
> + *OpenUI JCLMailbox/Mailbox: PickOne
> + *OrderDependency: 10 JCLSetup *JCLMailbox
> + *DefaultJCLMailbox: None
> + *JCLMailbox None/No mailbox: ""
> + *JCLMailbox 0: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=O<0A>"
> + *JCLMailbox 1: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=1<0A>"
> + *JCLMailbox 2: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=2<0A>"
> + *JCLMailbox 3: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=3<0A>"
> + *JCLMailbox 4: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=4<0A>"
> + *JCLMailbox 5: "@PJL COMMENT CANPJL SET DEVICE=MAILBOX<0A>@PJL COMMENT CANPJL SET MAILBOXNUMBER=5<0A>"
> + *JCLCloseUI: *JCLMailbox
> +
Not sure if the "COMMENT" keyword above is correct (because usually
that means the PJL interpreter would handle the whole line as a
comment only -- cupsaddsmb may do the same and thererfore not trans-
late it into a *cupsJobTicket syntax.
> Now I configured the printer and published the driver with cupsaddsmb/webinterface to samba.
> Every thing works fine and I am really happy with it.
>
> Now I stopped the printer and printed something into the mailbox nr 5 and I got the following datastream into /var/spool/cups/d....
>
> ---8<----
> %!PS-Adobe-3.0
> %cupsJobTicket: job-hold-until=no-hold
> %cupsJobTicket: job-sheets=none,none
> @PJL COMMENT CANPJL SET DEVICE=MAILBOX
> @PJL COMMENT CANPJL SET MAILBOXNUMBER=5
> %!PS-Adobe-3.0
> %%Title: Microsoft Office Outlook - Memoformat
> %%Creator: PScript5.dll Version 5.2.2
> ---8<----
>
> No I thought I have won, but the datastream transferd to the printer looks like this:
> ---8<----
>
> ESC%-12345X at PJL
> @PJL JOB NAME = "smbprn.00000073 Microsoft Office Outlook - Memoformat" DISPLAY = "293 pfoerfr smbprn.00000073 Microsoft Office Outlook - Memoformat"
> @PJL RDYMSG DISPLAY = "293 pfoerfr smbprn.00000073 Microsoft Office Outlook - Memoformat"
> @PJL ENTER LANGUAGE = Postscript
> %!PS-Adobe-3.0
> %%For: (pfoerfr)
> %%Title: (smbprn.00000073 Microsoft Office Outlook - Memoformat)
> %RBINumCopies: 1
> %%Pages: (atend)
> %%BoundingBox: (atend)
> %%EndComments
> @PJL COMMENT CANPJL SET DEVICE=MAILBOX
> @PJL COMMENT CANPJL SET MAILBOXNUMBER=5
> %!PS-Adobe-3.0
> %%Title: Microsoft Office Outlook - Memoformat
> %%Creator: PScript5.dll Version 5.2.2
> %%CreationDate: 10/25/2007 15:11:51
> %%For: pfoerfr
> %%BoundingBox: (atend)
> %%Pages: (atend)
> %%Orientation: Portrait
> %%PageOrder: Ascend
> ---8<----
>
> and the printer printed PJL error
>
> I copied the @PJL COMMENT CANPJL .. lines into the @PJL header and everything works fine.
>
> Now my questions
> a) Did I make a mistake?
> b) I that the wrong tool for the job?
> c) Is there a bug inside of pstops
To know for sure, one would have to see the complete PPD. The way it
works is this:
(a) you add the JCL/PJL sections to the PPD as is used by CUPS.
(b) cupsaddsmb converts these PJL lines into "*cupsJobTicket" lines
for the PPD Samba is offering to Windows clients.
(c) once a job arrived from the Windows client, all cupsJobTicket
lines are re-converted into PJL header lines by CUPS.
(d) pstops should leave untouch all PJL header lines it sees, and
just pass them down the line towards the device (which is the
only instance in the whole process chain that knows how to correctly
interpret their contents).
Did you add *OrderDependency lines with the right values to _all_ your
"*OpenUI ... *CloseUI" sections describing the PJL lines?
Otherwise, you may have triggered a bug in CUPS and/or cupsaddsmb.
--
Kurt Pfeifle
System & Network Printing Consultant ---- Linux/Unix/Windows/Samba/CUPS
Infotec Deutschland GmbH ..................... Hedelfinger Strasse 58
A RICOH Company ........................... D-70327 Stuttgart/Germany
More information about the cups
mailing list