Jay Mallar
2005-Jan-16 01:54 UTC
[Samba] Printing from Windows is printing PS commands instead of job!
I've about run out of ideas and need some help. I have an HP OfficeJet 7110 installed on my Fedora Core 3 box. From Linux, it prints perfectly, the Test Page works, I can print from Mozilla/Thunderbird/Firefox, KDE applications, and even Emacs, all without any issues whatsoever. The problem is I can't seem to get it to work when I share the printer to Windows. I've shared it to both a Windows 2000 and Windows XP box with the same results: Everything I send to the printer from Windows is printed as PS commands instead of the actual output. Yes, I'm using the Adobe PS drivers, but the Postscript Imager driver in Windows XP does the same thing. I have debugging turned on in CUPS and I believe the problem whilttles down to this line: D [15/Jan/2005:18:06:01 -0600] StartJob: envp[9]="CONTENT_TYPE=application/vnd.cups-raw" So, CUPS is thinking this is raw output - no wonder it's not filtering it appropriately. What I can't seem to figure out is, why? Why isn't CUPS seeing the job as a PS job? I've looked at the file itself and it seems to look okay: %!PS-Adobe-3.0 %%Title: README - Notepad %%Creator: PScript5.dll Version 5.2.2 And according to my mime.types, it should be recognizing that as a PS job: application/postscript ai eps ps string(0,%!) string(0,<04>%!) \ contains(0,128,<1B>%-12345X) + \ (contains(0,1024,"LANGUAGE=POSTSCRIPT") \ contains(0,1024,"LANGUAGE = Postscript") \ contains(0,1024,"LANGUAGE = PostScript") \ contains(0,1024,"LANGUAGE = POSTSCRIPT")) What in blazes is the problem? If you need more info, just ask - I'll send you anything you think will help. For starters, here's my CUPS configuration files: LogFilePerm 0600 MaxLogSize 2000000000 LogLevel debug Printcap /etc/printcap <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /printers/officejet-7100-series-1> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> <Location /printers/usblp0> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> Browsing On BrowseProtocols cups BrowseOrder Deny,Allow BrowseAllow from @LOCAL Listen 127.0.0.1:631 And my mime.types: LogFilePerm 0600 MaxLogSize 2000000000 LogLevel debug Printcap /etc/printcap <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /printers/officejet-7100-series-1> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> <Location /printers/usblp0> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> Browsing On BrowseProtocols cups BrowseOrder Deny,Allow BrowseAllow from @LOCAL Listen 127.0.0.1:631 And my mime.convs: LogFilePerm 0600 MaxLogSize 2000000000 LogLevel debug Printcap /etc/printcap <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /printers/officejet-7100-series-1> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> <Location /printers/usblp0> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> Browsing On BrowseProtocols cups BrowseOrder Deny,Allow BrowseAllow from @LOCAL Listen 127.0.0.1:631 And here's the output from my last job: D [15/Jan/2005:19:27:20 -0600] AcceptClient: 9 from localhost:631. D [15/Jan/2005:19:27:20 -0600] ReadClient: 9 POST / HTTP/1.1 D [15/Jan/2005:19:27:20 -0600] ProcessIPPRequest: 9 status_code=0 D [15/Jan/2005:19:27:20 -0600] CloseClient: 9 D [15/Jan/2005:19:27:20 -0600] AcceptClient: 9 from localhost:631. D [15/Jan/2005:19:27:20 -0600] ReadClient: 9 POST /printers/HPOJ7110 HTTP/1.1 D [15/Jan/2005:19:27:20 -0600] print_job: request file type is application/vnd.cups-raw. D [15/Jan/2005:19:27:20 -0600] check_quotas: requesting-user-name = 'jay' D [15/Jan/2005:19:27:20 -0600] print_job: requesting-user-name = 'jay' D [15/Jan/2005:19:27:20 -0600] Adding default job-sheets values "none,none"... I [15/Jan/2005:19:27:20 -0600] Adding start banner page "none" to job 61. I [15/Jan/2005:19:27:20 -0600] Adding end banner page "none" to job 61. I [15/Jan/2005:19:27:20 -0600] Job 61 queued on 'HPOJ7110' by 'jay'. D [15/Jan/2005:19:27:20 -0600] Job 61 hold_until = 0 D [15/Jan/2005:19:27:20 -0600] StartJob(61, 0xf7010a80) D [15/Jan/2005:19:27:20 -0600] StartJob() id = 61, file = 0/1 D [15/Jan/2005:19:27:20 -0600] job-sheets=none,none D [15/Jan/2005:19:27:20 -0600] banner_page = 0 D [15/Jan/2005:19:27:20 -0600] StartJob: argv = "HPOJ7110","61","jay","smbprn.00000055 Test Page","1","","/var/spool/cups/d00061-001" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[0]="PATH=/usr/lib/cups/filter:/bin:/usr/bin" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[1]="SOFTWARE=CUPS/1.1" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[2]="USER=root" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[3]="CHARSET=utf-8" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[4]="LANG=en_US" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[5]="PPD=/etc/cups/ppd/HPOJ7110.ppd" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[6]="CUPS_SERVERROOT=/etc/cups" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[7]="RIP_MAX_CACHE=8m" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[8]="TMPDIR=/var/spool/cups/tmp" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[9]="CONTENT_TYPE=application/vnd.cups-raw" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[10]="DEVICE_URI=usb://Hewlett-Packard/officejet%207100%20series?serial=MY3C3F10GM6G" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[11]="PRINTER=HPOJ7110" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[12]="CUPS_DATADIR=/usr/share/cups" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[13]="CUPS_FONTPATH=/usr/share/cups/fonts" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[14]="CUPS_SERVER=localhost" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[15]="IPP_PORT=631" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[16]="LD_LIBRARY_PATH=" D [15/Jan/2005:19:27:20 -0600] StartJob: envp[17]="SHLIB_PATH=" D [15/Jan/2005:19:27:20 -0600] StartJob: statusfds = [ 10 11 ] D [15/Jan/2005:19:27:20 -0600] StartJob: filterfds[1] = [ 12 -1 ] D [15/Jan/2005:19:27:20 -0600] StartJob: backend = "/usr/lib/cups/backend/usb" D [15/Jan/2005:19:27:20 -0600] StartJob: filterfds[0] = [ -1 13 ] D [15/Jan/2005:19:27:20 -0600] start_process("/usr/lib/cups/backend/usb", 0xfefee5c0, 0xfefed930, 12, 13, 11) I [15/Jan/2005:19:27:20 -0600] Started backend /usr/lib/cups/backend/usb (PID 4459) for job 61. D [15/Jan/2005:19:27:20 -0600] ProcessIPPRequest: 9 status_code=0 D [15/Jan/2005:19:27:20 -0600] CloseClient: 9 D [15/Jan/2005:19:27:20 -0600] [Job 61] Printer using device file "/dev/usb/lp0"... D [15/Jan/2005:19:27:20 -0600] [Job 61] LPGETSTATUS returned a port status of 18... Thanks Jay