Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

OPERATION get-printer-attributes fails successfully? #6

Closed
imphil opened this issue Jun 8, 2016 · 6 comments
Closed

OPERATION get-printer-attributes fails successfully? #6

imphil opened this issue Jun 8, 2016 · 6 comments
Assignees
Milestone

Comments

@imphil
Copy link

imphil commented Jun 8, 2016

Given Ubuntu 16.04 with Ruby 2.3.0, Puppet 3.8.5 and CUPS 2.1.3.

We have a printer that is specified like this (buggy printer)

  N3423_Multifunction_Color:
    uri: 'ksmb://ads/tu00000-swprint.ads.mwn.de/TUEILNT-N3423_Multifunction'
    description: 'KonicaMinolta C364e BizHub Multifunction Printer for Stapled Color Print'
    location: 'N3423 Printers Room'
    ppd: '/etc/cups/ppd/N3423_Multifunction_Color.ppd'

(The PPD is copied before to the node and it's there, the ksmb protocol is a custom addition, and the shown hiera fragment gets passed to the corresponding arguments of a Cups_queue instance.).

To compare, a printer defined like this works: (working printer)

  N3423_BW:
    uri: 'ksmb://ads/tu00000-swprint.ads.mwn.de/TUEILNT-N3423_BW'
    description: 'HP LaserJet Enterprise 600 M602x Black and White Printer'
    location: 'N3423 Printers Room'
    model: 'postscript-hp:2/ppd/hplip/HP/hp-laserjet_600_m601_m602_m603-ps.ppd'

The significant difference here is the use of the model parameter, and not the ppd parameter.

When running puppet, the printer gets added, but we see the following error in the puppet agent log:

Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -v /dev/null'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -P /etc/cups/ppd/N3423_Multifunction_Color.ppd'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -v ksmb://ads/tu00000-swprint.ads.mwn.de/TUEILNT-N3423_Multifunction'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -D KonicaMinolta C364e BizHub Multifunction Printer for Stapled Black and White Print'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -L N3423 Printers Room'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -o SelectColor=Grayscale'
Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -o printer-is-shared=false'
Debug: Cups_queue[N3423_Multifunction_BW](provider=cups): Circumventing CUPS issue #4781 by temporarily allowing access for 'root'
Error: Could not set 'printer' on ensure: Unexpected response from CUPS server.
Error: Could not set 'printer' on ensure: Unexpected response from CUPS server.
Wrapped exception:
Unexpected response from CUPS server.
Error: /Stage[main]/All::Profile::Printing/Cups_queue[N3423_Multifunction_BW]/ensure: change from absent to printer failed: Could not set 'printer' on ensure: Unexpected response from CUPS server.

Unfortunately the error message is not very helpful, so I applied this patch to get more debug output, and that's what we get now:

err     Puppet  Could not set 'printer' on ensure: Unexpected response from CUPS server.
resource:/printers/N3423_Multifunction_BW
request:
{
            OPERATION get-printer-attributes
            GROUP operation
            ATTR charset attributes-charset utf-8
            ATTR language attributes-natural-language en
            ATTR uri printer-uri $uri
            STATUS successful-ok
            DISPLAY requesting-user-name-denied
          }
STDOUT:

STDERR:
successful-ok

Executing the same commands as the puppet-cups module does on the console for the non-working and the working printer results in that:

$ echo '{OPERATION get-printer-attributes GROUP operation ATTR charset attributes-charset utf-8 ATTR language attributes-natural-language en ATTR uri printer-uri $uri STATUS successful-ok DISPLAY requesting-user-name-denied }' | ipptool -c 'ipp://localhost/printers/N3423_Multifunction_BW' /dev/stdin
successful-ok
$ echo $?
1

$ echo '{OPERATION get-printer-attributes GROUP operation ATTR charset attributes-charset utf-8 ATTR language attributes-natural-language en ATTR uri printer-uri $uri STATUS successful-ok DISPLAY requesting-user-name-denied }' | ipptool -c 'ipp://localhost/printers/N3423_BW' /dev/stdin
requesting-user-name-denied

$ echo $?
0

The cups /var/log/cups/error_log on that node when executing these commands shows this (timestamps removed). Essentially, the CUPS seems to send the same response in both cases.

non-working case:

[Client 1] Accepted from localhost:57342 (IPv6)
[Client 1] Waiting for request.
[Client 1] POST /printers/N3423_Multifunction_BW HTTP/1.1
cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
[Client 1] Read: status=200
[Client 1] No authentication data provided.
[Client 1] 1.1 Get-Printer-Attributes 84942
Get-Printer-Attributes ipp://localhost:631/printers/N3423_Multifunction_BW
[Client 1] Returning IPP successful-ok for Get-Printer-Attributes (ipp://localhost:631/printers/N3423_Multifunction_BW) from localhost
[Client 1] Content-Length: 10844
[Client 1] cupsdSendHeader: code=200, type="application/ipp", auth_type=0
[Client 1] con->http=0x55ba199d8d20
[Client 1] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=10844, response=0x55ba19a1a2b0(IPP_STATE_DATA), pipe_pid=0, file=-1
[Client 1] Writing IPP response, ipp_state=IPP_STATE_DATA, old wused=0, new wused=0
[Client 1] bytes=0, http_state=0, data_remaining=10844
[Client 1] Flushing write buffer.
[Client 1] New state is HTTP_STATE_WAITING
[Client 1] Waiting for request.
cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
[Client 1] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[Client 1] Closing connection.
cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

working case:

[Client 4] Accepted from localhost:57564 (IPv6)
[Client 4] Waiting for request.
[Client 4] POST /printers/N3423_BW HTTP/1.1
cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
[Client 4] Read: status=200
[Client 4] No authentication data provided.
[Client 4] 1.1 Get-Printer-Attributes 104670
Get-Printer-Attributes ipp://localhost:631/printers/N3423_BW
[Client 4] Returning IPP successful-ok for Get-Printer-Attributes (ipp://localhost:631/printers/N3423_BW) from localhost
[Client 4] Content-Length: 9075
[Client 4] cupsdSendHeader: code=200, type="application/ipp", auth_type=0
[Client 4] con->http=0x5571c8917d20
[Client 4] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=9075, response=0x5571c8925ec0(IPP_STATE_DATA), pipe_pid=0, file=-1
[Client 4] Writing IPP response, ipp_state=IPP_STATE_DATA, old wused=0, new wused=0
[Client 4] bytes=0, http_state=0, data_remaining=9075
[Client 4] Flushing write buffer.
[Client 4] New state is HTTP_STATE_WAITING
[Client 4] Waiting for request.
cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
[Client 4] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[Client 4] Closing connection.
cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

I don't know where things go wrong. I have the feeling ipptool is not behaving as it should, but do you have an idea why? I think the main difference between the two printers is the PPD file, but I don't see how that would influence this particular request?

@leoarnold
Copy link
Owner

leoarnold commented Jun 8, 2016

The Puppet agent run is fine until ipptool is invoked on that queue for the first time, i.e. the first query to the CUPS daemon.

There is one unusual line in the debug log:

Debug: Executing '/usr/sbin/lpadmin -E -p N3423_Multifunction_BW -P /etc/cups/ppd/N3423_Multifunction_Color.ppd'

It looks like you directly synced the PPD file to /etc/cups/ppd/ which may result in unexpected behavior as CUPS can be very picky about file ownership and ACL.

The directory /usr/share/cups/model/ is the preferred place to store your custom PPD files. The quoted lpadmin command will copy the PPD file to /etc/cups/ppd/ and take care of filesystem metadata.

@leoarnold
Copy link
Owner

Indeed:

ppd: '/etc/cups/ppd/N3423_Multifunction_Color.ppd'

Even if that would work, it would still be problematic, because /etc/cups/ppd/ is a kind of working directory:

Say you manually set duplex by default:

sudo lpadmin -p MyPrinter -o Duplex=DuplexTumble

CUPS will save this setting by modifying the file /etc/cups/ppd/MyPrinter.pdd.

leoarnold added a commit that referenced this issue Jun 9, 2016
Suggested by Philipp Wagner (@imphil) in #6.
@imphil
Copy link
Author

imphil commented Jun 10, 2016

Moving the PPD to /usr/share/cups/model, removing the printer fully and then running puppet again didn't change anything, i.e. we still see the same error.

Thanks for the change in logging. In addition to your changes, it would be helpful to also see the output of the ipptool program (stdout and stderr) in the logs. Even greater would be the full ipptool call, so people can copy it directly on the console and reproduce and debug the problem without puppet.

@leoarnold
Copy link
Owner

leoarnold commented Jun 10, 2016

Long story short: Your PPD file is to blame.

ipptool's full answer reads:

$  echo '{ OPERATION get-printer-attributes GROUP operation ATTR charset attributes-charset utf-8 ATTR language attributes-natural-language en ATTR uri printer-uri $uri STATUS successful-ok DISPLAY requesting-user-name-denied }' | ipptool -c 'ipp://localhost/printers/N3423_Multifunction_BW' /dev/stdin
successful-ok
        "media-type-supported": Bad keyword value "thick1(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "thick1-plus(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "thick2(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "thick3(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "thick4(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "recycled(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user1(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user2(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user3(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user4(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user5(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user6(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type1(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type2(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type3(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type4(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type5(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type6(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type7(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type8(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type9(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type10(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type11(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type12(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type13(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type14(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type15(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type16(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type17(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type18(2nd)" - invalid character (RFC 2911 section 4.1.3).
        "media-type-supported": Bad keyword value "user-custom-type19(2nd)" - invalid character (RFC 2911 section 4.1.3).

Translation: The query is successful-ok, but ipptool refuses to answer it, because some of the names of custom media types specified in your PPD file do not comply with RFC 2911.

I simply deleted the corresponding lines from the PPD file

--- KOC554UX.ppd    2016-06-10 17:44:05.907735575 +0200
+++ KOC554UX-patched.ppd    2016-06-10 17:30:04.890300481 +0200
@@ -216,33 +216,6 @@
 *MediaType Thick1/Thick 1:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
  /KMOptions /ProcSet findresource /setKMoptions get exec"
 *End
-*MediaType Thick1(2nd)/Thick 1(Side2):  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick1Plus/Thick 1+:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thickplus) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick1Plus(2nd)/Thick 1+(Side2):  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thickplus) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick2/Thick 2:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick2) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick2(2nd)/Thick 2(Side2):  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick2) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick3/Thick 3:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick3) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick3(2nd)/Thick 3(Side2):  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick3) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick4/Thick 4:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick4) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType Thick4(2nd)/Thick 4(Side2):  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thick4) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
 *MediaType Thin/Thin Paper:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Thin) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
  /KMOptions /ProcSet findresource /setKMoptions get exec"
 *End
@@ -270,162 +243,12 @@
 *MediaType Recycled/Recycled:  "<< /KMMediaType (UserCustomType20) >>
  /KMOptions /ProcSet findresource /setKMoptions get exec"
 *End
-*MediaType Recycled(2nd)/Recycled(Side2):  "<< /KMMediaType (UserCustomType20) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User1/User1(Plain Paper):  "<< /KMMediaType (CustomType) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User1(2nd)/User1(Plain. Side2):  "<< /KMMediaType (CustomType) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User2/User2(Plain Paper):  "<< /KMMediaType (CustomType2) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User2(2nd)/User2(Plain. Side2):  "<< /KMMediaType (CustomType2) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User3/User3(Thick 1):  "<< /KMMediaType (CustomType3) /KMMediaColor (None) /KMMediaWeight (Thick) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User3(2nd)/User3(Thick 1 Side2):  "<< /KMMediaType (CustomType3) /KMMediaColor (None) /KMMediaWeight (Thick) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User4/User4(Thick 1+):  "<< /KMMediaType (CustomType4) /KMMediaColor (None) /KMMediaWeight (Thickplus) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User4(2nd)/User4(Thick 1+ Side2):  "<< /KMMediaType (CustomType4) /KMMediaColor (None) /KMMediaWeight (Thickplus) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User5/User5(Thick 2):  "<< /KMMediaType (CustomType5) /KMMediaColor (None) /KMMediaWeight (Thick2) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User5(2nd)/User5(Thick 2 Side2):  "<< /KMMediaType (CustomType5) /KMMediaColor (None) /KMMediaWeight (Thick2) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User6/User6(Thick 3):  "<< /KMMediaType (CustomType6) /KMMediaColor (None) /KMMediaWeight (Thick3) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType User6(2nd)/User6(Thick 3 Side2):  "<< /KMMediaType (CustomType6) /KMMediaColor (None) /KMMediaWeight (Thick3) /MediaTabType (None) /MediaPreprinted true /MediaPrepunched false >> 
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
 *MediaType PrinterDefault/Not Specified:  "<< /KMMediaType (NoSet) /KMMediaColor (NoSet) /KMMediaWeight (NoSet) >> 
  /KMOptions /ProcSet findresource /setKMoptions get exec"
 *End
 *MediaType UserCustomType1/<3C>Custom 1<3E>:  "<< /KMMediaType (UserCustomType1) >>
  /KMOptions /ProcSet findresource /setKMoptions get exec"
 *End
-*MediaType UserCustomType1(2nd)/<3C>Custom 1<3E>(Side2):  "<< /KMMediaType (UserCustomType1) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType2/<3C>Custom 2<3E>:  "<< /KMMediaType (UserCustomType2) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType2(2nd)/<3C>Custom 2<3E>(Side2):  "<< /KMMediaType (UserCustomType2) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType3/<3C>Custom 3<3E>:  "<< /KMMediaType (UserCustomType3) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType3(2nd)/<3C>Custom 3<3E>(Side2):  "<< /KMMediaType (UserCustomType3) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType4/<3C>Custom 4<3E>:  "<< /KMMediaType (UserCustomType4) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType4(2nd)/<3C>Custom 4<3E>(Side2):  "<< /KMMediaType (UserCustomType4) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType5/<3C>Custom 5<3E>:  "<< /KMMediaType (UserCustomType5) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType5(2nd)/<3C>Custom 5<3E>(Side2):  "<< /KMMediaType (UserCustomType5) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType6/<3C>Custom 6<3E>:  "<< /KMMediaType (UserCustomType6) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType6(2nd)/<3C>Custom 6<3E>(Side2):  "<< /KMMediaType (UserCustomType6) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType7/<3C>Custom 7<3E>:  "<< /KMMediaType (UserCustomType7) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType7(2nd)/<3C>Custom 7<3E>(Side2):  "<< /KMMediaType (UserCustomType7) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType8/<3C>Custom 8<3E>:  "<< /KMMediaType (UserCustomType8) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType8(2nd)/<3C>Custom 8<3E>(Side2):  "<< /KMMediaType (UserCustomType8) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType9/<3C>Custom 9<3E>:  "<< /KMMediaType (UserCustomType9) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType9(2nd)/<3C>Custom 9<3E>(Side2):  "<< /KMMediaType (UserCustomType9) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType10/<3C>Custom 10<3E>:  "<< /KMMediaType (UserCustomType10) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType10(2nd)/<3C>Custom 10<3E>(Side2):  "<< /KMMediaType (UserCustomType10) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType11/<3C>Custom 11<3E>:  "<< /KMMediaType (UserCustomType11) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType11(2nd)/<3C>Custom 11<3E>(Side2):  "<< /KMMediaType (UserCustomType11) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType12/<3C>Custom 12<3E>:  "<< /KMMediaType (UserCustomType12) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType12(2nd)/<3C>Custom 12<3E>(Side2):  "<< /KMMediaType (UserCustomType12) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType13/<3C>Custom 13<3E>:  "<< /KMMediaType (UserCustomType13) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType13(2nd)/<3C>Custom 13<3E>(Side2):  "<< /KMMediaType (UserCustomType13) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType14/<3C>Custom 14<3E>:  "<< /KMMediaType (UserCustomType14) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType14(2nd)/<3C>Custom 14<3E>(Side2):  "<< /KMMediaType (UserCustomType14) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType15/<3C>Custom 15<3E>:  "<< /KMMediaType (UserCustomType15) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType15(2nd)/<3C>Custom 15<3E>(Side2):  "<< /KMMediaType (UserCustomType15) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType16/<3C>Custom 16<3E>:  "<< /KMMediaType (UserCustomType16) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType16(2nd)/<3C>Custom 16<3E>(Side2):  "<< /KMMediaType (UserCustomType16) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType17/<3C>Custom 17<3E>:  "<< /KMMediaType (UserCustomType17) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType17(2nd)/<3C>Custom 17<3E>(Side2):  "<< /KMMediaType (UserCustomType17) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType18/<3C>Custom 18<3E>:  "<< /KMMediaType (UserCustomType18) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType18(2nd)/<3C>Custom 18<3E>(Side2):  "<< /KMMediaType (UserCustomType18) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType19/<3C>Custom 19<3E>:  "<< /KMMediaType (UserCustomType19) >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
-*MediaType UserCustomType19(2nd)/<3C>Custom 19<3E>(Side2):  "<< /KMMediaType (UserCustomType19) /MediaPreprinted true >>
- /KMOptions /ProcSet findresource /setKMoptions get exec"
-*End
 *CloseUI: *MediaType

 *OpenUI *PageSize/Paper Size: PickOne

and then everything worked as expected.
@

@leoarnold leoarnold added this to the 2.0 milestone Jan 19, 2017
@leoarnold leoarnold self-assigned this Jan 19, 2017
@leoarnold leoarnold reopened this Jan 19, 2017
@imphil
Copy link
Author

imphil commented Jan 19, 2017

Ah, I just noticed that I never gave feedback on this. Sorry -- you did all the work and never got a thanks :-( As you might have assumed, your analysis was right and solved the problem.

@leoarnold
Copy link
Owner

BTW: Upcoming release 2.0.0 comes with a major rewrite due to #19 which not only has better error messages but can actually install the printer with the original malformed BizHub PPD file :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants