ps2ps is adding BS to the end of my jobs...

Brad Langhorst brad at langhorst.com
Fri Oct 14 09:53:35 PDT 2005


Helge Blischke wrote:
> Brad Langhorst wrote:
> 
>>Michael Sweet wrote:
>>
>>>Brad Langhorst wrote:
>>>
>>>
>>>>I'm running jobs from windows clients through cups' pstops to strip
>>>>out color information.
>>>>
>>>>
>>>>...
>>>>ehsave restore^M
>>>>(%%[LastPage]%%) = ^M
>>>>%%EOF^M
>>>>^Duserdict/ESPwl{}bind put
>>>>
>>>>%%Trailer
>>>>%%Pages: 0
>>>>%%EOF
>>>>^D
>>>>
>>>>
>>>>note that cups has added a second EOF and ctrl-D
>>>>I think it's not correct to add information after a ctrl D
>>>>
>>>>this is causing my printer to barf...(rightly so i think...)
>>>>
>>>>what can i do to fix the problem?
>>>
>>>
>>>Stop using Foomatic.
>>>
>>
>>Sorry to be thick... I don't see where foomatic is involved. Samba
>>spools the job to cups which runs pstops and then sends the job along to
>>the printer. Is foomatic inside of cups?  Is that just saying use -oraw?
>>
>>I can munge pstops.c  at about line 600  with this
>>
>>       else if ((!strncmp(line,"%%EOF",5)) || (!strcmp(line, "\004") &&
>>len == 1) )
>>       {
>>         /*do nothing with EOF or ctrl-D */
>>       }
>>       else if (strncmp(line, "%%Pages:", 8) != 0)
>>         pswrite(line, len, stdout);
>>
>>which eliminates the first EOF and ctrl-D but does not seem to strip out
>>the color info as i want it to - this despite the presence of
>>
>>%%BeginFeature: *XRXColor BW
>>
>>  <<
>>     /DeviceRenderingInfo currentpagedevice 1 index get 1 dict copy
>>    dup /VirtualColorDevice <<
>>                 /Type 1
>>                 /ColorTransform /Gray
>>      >> put
>>  >> setpagedevice
>>%%EndFeature
>>
>>in the ps file
>>
>>Is it not possible to strip the color info from this input by directing
>>the output through pstops?
>>
>>I hope I'm not hammering a screw...
>>
>>brad
> 
> 
> Make sure to configure your printer (on the Wondows side) to "optimize for partability"
> (the string may be slightly different, depending on the printer driver (the DLLs) you use).
> 
> And, please post an URL to a sample file.
> 
> Helge
> 
I did not have physical access to the printer last night - gv did not 
know how to read the color elimination i guess - but the printer did.
So this fix worked for me:

--- pstops.c.orig       2005-10-14 11:19:28.142275555 -0400
+++ pstops.c    2005-10-14 11:23:31.901801757 -0400
@@ -599,6 +599,8 @@
           tbytes -= nbytes;
         }
        }
+      else if ((!strncmp(line,"%%EOF",5)) || (!strcmp(line, "\004") && 
len == 1) )
+       /*do nothing with EOF or ctrl-D they'll be added later*/
        else if (strncmp(line, "%%Pages:", 8) != 0)
          pswrite(line, len, stdout);
      }

Here is the sample file that I was working with.
ftp://lauelab.unh.edu/fromwindows.ps.zip

If you run it through pstops invalid ps is generated.

If you run it through my modified pstops then it works fine - though 
maybe I broke something else  - I'm not sure.


brad




More information about the cups mailing list