google / cloud-print-connector

Google Cloud Print Connector
BSD 3-Clause "New" or "Revised" License
764 stars 185 forks source link

Color/BW option not given in print dialogs when ColorModel is in cups_vendor_ppd_options #347

Open wsgcsysadmin opened 7 years ago

wsgcsysadmin commented 7 years ago

Printer: Canon ImageRunner iR-ADV C5235 CUPS: v.1.5.3 running in Debian Wheezy CPC: gcp-cups-connector version DEV (downloaded and built yesterday from docs in wiki) Go: version go1.8 linux/amd64

Print dialogs in Chrome(Windows, Linux, V56) and ChromeOS do not show a color/bw option. Previews show in black and white. Printing comes out in color. The CUPS web interface does show the Color Mode option for the printer defaults setup. The native drivers(Linux using same PPD, and Windows) do show the color/bw option and it is functional.

root@etl-2:/# lpoptions -l -p CO_Copier | grep -i ColorModel ColorModel/Color Mode: *Default Gray Auto

ZIP file attached with the PPD and gcp-cups-connector.config.json. ppd-and-config.zip

Please let me know if there is any other information you need. Thanks.

wsgcsysadmin commented 7 years ago
root@etl-2:~#  cupstestppd /tmp/CO_Copier.ppd 
/tmp/CO_Copier.ppd: PASS
        WARN    Size "Monarch" should be the Adobe standard name "EnvMonarch".
        WARN    Size "Com10" should be the Adobe standard name "Env10".
        WARN    Size "DL" should be the Adobe standard name "EnvDL".
        WARN    Size "C5" should be the Adobe standard name "EnvC5".
        WARN    Size "SRA3" should be "320x450mm".
        WARN    Size "12x18" should be the Adobe standard name "EnvARCHB".
        WARN    PCFileName longer than 8.3 in violation of PPD spec.
                REF: Pages 61-62, section 5.3.
wsgcsysadmin commented 7 years ago

From the Google Cloud Print printer detail page:

Owned by me
Added 1 day ago
Central Office Mail Room
Printer is online and ready to print
Support available at https://github.com/google/cloud-print-connector
Ink/Toner
Canon GPR 31 Black toner level is 60%   
Canon GPR 31 Cyan toner level is 20%    
Canon GPR 31 Magenta toner level is 99% 
Canon GPR 31 Yellow toner level is 22%  
Advanced Details
Printer Type
Classic printer connected via Google Chrome
Registered with Cloud Print
Mar 2, 2017, 11:45:20 AM
Last Updated
Mar 3, 2017, 8:21:20 AM
Printer ID
7b5b879d-b865-329a-00ee-9e424e4336e6
Serial Number
a5415f46-d1ea-3fa6-6cb6-bef71d14e46e
Manufacturer
Canon
Model
iR-ADV C5235/5240
Google Cloud Print Version
2.0
Firmware Version
CUPS Connector DEV-linux
Firmware Update URL
https://github.com/google/cloud-print-connector
Supported Content Types
application/pdf (≥ 1.2, ≤ 1.7), application/postscript, image/gif, image/jpeg, image/png, image/tiff, text/plain
Proxy
2d7e2fed-1202-4fb5-bb20-0bb5f58229d5
Tags
^recent 
^own    
^connector  
^can_share  
^can_update 
^can_delete 
__cp__connector-cups-client-version 1.5.3
__cp__connector-version DEV
__cp__copies-default    1
__cp__copies-supported  1~9999
__cp__cups-version  1.5.3
__cp__device-uri    socket://co-copier:9100
__cp__document-format-supported application/octet-stream,application/pdf,application/postscript,application/vnd.adobe-reader-postscript,application/vnd.cups-command,application/vnd.cups-pdf,application/vnd.cups-pdf-banner,application/vnd.cups-postscript,application/vnd.cups-raw,application/x-cshell,application/x-csource,application/x-perl,application/x-shell,image/gif,image/jpeg,image/png,image/tiff,image/urf,image/x-bitmap,image/x-photocd,image/x-portable-anymap,image/x-portable-bitmap,image/x-portable-graymap,image/x-portable-pixmap,image/x-sgi-rgb,image/x-sun-raster,image/x-xbitmap,image/x-xpixmap,image/x-xwindowdump,text/css,text/html,text/plain
__cp__marker-levels 60,20,99,22,-1
__cp__marker-names  Canon GPR-31 Black Toner,Canon GPR-31 Cyan Toner,Canon GPR-31 Magenta Toner,Canon GPR-31 Yellow Toner,Waste Toner
__cp__marker-types  toner,toner,toner,toner,wasteToner
__cp__number-up-default 1
__cp__number-up-supported   1,2,4,6,9,16
__cp__orientation-requested-default 
__cp__orientation-requested-supported   3,4,5,6
__cp__pdf-versions-supported    adobe-1.2,adobe-1.3,adobe-1.4,adobe-1.5,adobe-1.6,adobe-1.7,iso-19005-1_2005,iso-32000-1_2008,pwg-5102.3
__cp__print-color-mode-default  color
__cp__print-color-mode-supported    monochrome,color
__cp__printer-info  Canon iR-ADV C5235
__cp__printer-location  Central Office Mail Room
__cp__printer-make-and-model    Canon iR-ADV C5235/5240
__cp__printer-name  CO_Copier
__cp__printer-state 3
__cp__printer-state-reasons 
__cp__printer-uuid  urn:uuid:a5415f46-d1ea-3fa6-6cb6-bef71d14e46e
__cp__system-arch   amd64
__cp__system-golang-version go1.8
__cp__system-hostname   etl-2
__cp__system-uname-machine  x86_64
__cp__system-uname-nodename etl-2
__cp__system-uname-release  3.2.0-4-amd64
__cp__system-uname-sysname  Linux
__cp__system-uname-version  #1 SMP Debian 3.2.65-1+deb7u2
__cp__tagshash  0f2a7cc0
wsgcsysadmin commented 7 years ago

I should also add two more points here:

wsgcsysadmin commented 7 years ago

When re/starting CUPS or saving printer defaults the following is logged.

W [07/Mar/2017:12:26:30 -0600] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'CO_Copier-Gray..' already exists
W [07/Mar/2017:12:26:30 -0600] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'CO_Copier-CMYK..' already exists
W [07/Mar/2017:12:26:30 -0600] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-CO_Copier' already exists
W [07/Mar/2017:12:26:30 -0600] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'CO_Copier-Gray..' already exists
W [07/Mar/2017:12:26:30 -0600] failed to CreateProfile: org.freedesktop.ColorManager.AlreadyExists:profile id 'CO_Copier-CMYK..' already exists
W [07/Mar/2017:12:26:30 -0600] failed to CreateDevice: org.freedesktop.ColorManager.AlreadyExists:device id 'cups-CO_Copier' already exists

I've been unable to determine is this is a concern or not.

wsgcsysadmin commented 7 years ago

The behavior is the same on my laptop: Ubuntu 16.04 x64 Go v1.6 CUPS v2.1.3

Is there any way of seeing what CPC is sending to Google about the printer?

wsgcsysadmin commented 7 years ago

When the CUPS printer's color setting is "Printer default" the job is sent as CUSTOM_MONOCHROME:

D [09/Mar/2017:09:33:43 -0600] [Job 051c775a-322e-c97d-8d32-b37da0d0448e] Assembled with file /tmp/cloud-print-connector-115776501: &{VendorID:ColorModel:Default Type:CUSTOM_MONOCHROME}

When the CUPS printer's color setting is "Black and White", the job is sent as STANDARD_MONOCHROME:

D [09/Mar/2017:10:27:11 -0600] [Job 30d7250e-4ac2-1987-722b-670813c487a2] Assembled with file /tmp/cloud-print-connector-499801095: &{VendorID:ColorModel:Gray Type:STANDARD_MONOCHROME}

And when the CUPS printer's color setting is "Color", the job is sent as CUSTOM_MONOCHROME:

D [09/Mar/2017:10:32:27 -0600] [Job ef655ceb-2d46-9bbd-f20a-2aece1566cbc] Assembled with file /tmp/cloud-print-connector-113397520: &{VendorID:ColorModel:Auto Type:CUSTOM_MONOCHROME}

The cloud print connector was restarted after each change to CUPS and before printing.

In all cases the print preview on Google is in black and white and the printer info on Google always shows: cpprint-color-mode-default color cpprint-color-mode-supported monochrome,color

And again, there is never an option in the Chrome print dialog for color mode.

akorobkin commented 7 years ago

Try changing your ColorModel section from this

*OpenUI *ColorModel/Color Mode: PickOne
*OrderDependency: 50.0 AnySetup *ColorModel
*DefaultColorModel: Default
*ColorModel Default/Printer Default: ""
*ColorModel Gray/Black and White: "<</ProcessColorModel /DeviceGray>>
systemdict /setpagedevice get exec"
*End
*ColorModel Auto/Color: "<</ProcessColorModel /DeviceCMYK>>
systemdict /setpagedevice get exec"
*End
*CloseUI: *ColorModel

to this:

*OpenUI *ColorModel/Color Mode: PickOne
*OrderDependency: 50.0 AnySetup *ColorModel
*DefaultColorModel: Gray
*ColorModel Gray/Black and White: "<</ProcessColorModel /DeviceGray>>
systemdict /setpagedevice get exec"
*End
*ColorModel CMYK/Color: "<</ProcessColorModel /DeviceCMYK>>
systemdict /setpagedevice get exec"
*End
*CloseUI: *ColorModel

Would it have any effect?

wsgcsysadmin commented 7 years ago

That did it. Color option is now present and works.