[cups.general] eps printing broken

Helge Blischke h.blischke at srz.de
Wed Jun 28 03:59:04 PDT 2006


David Bishop wrote:
> On Tuesday 27 June 2006 13:51, Kurt Pfeifle wrote:
> 
>>David Bishop <dbishop at micron.com> wrote (Tuesday 27 June 2006 20:21):
>>
>>>>But your problem may be much simpler... just let us see the EPS
>>>>files that fail to print...
>>
>>The test.ps definitely is b0rken:
>>
>> a) not compliant to DSC specification ("Document Structuring Conventions")
>> b) not compliant to EPS specification
>>
>>You can find the specs here:
>>
>>  http://partners.adobe.com/public/developer/ps/index_specs.html
>>
>>Quotes from my 5001.DSC_Spec.pdf file:
>>    "DSC comments are specified by two percent characters (%%) as the first
>>     characters on a line (no leading white space)."
> 
> 
> I'll forward that link to our vendors.  Oh, how I wish there was no such thing 
> as proprietary software.  Didn't Stallman's original "itch" have to do with 
> printing?
> 
> 
>>One EPS-required DSC-comment is "%%BoundingBox", but that appears as
>>"%BoundingBox" (single percent sign only).
>>
>>
>>>Absolutely.  Thanks a ton for helping me figure this out.
>>
>>On 2 PostScript printers near me the b0rken file still prints with "-o
>>raw":
>>
>>  lp -d printername -o raw test.ps
>>
>>Not sure if you do have PostScript printers?
> 
> 
> We use almost exclusively PostScript printers.  Mainly HPs with JetDirect 
> cards.  The only exceptions are some huge Canon copy/scanner/printer/fax/dog 
> walking machines.  Sending that file in raw mode worked on an HP LaserJet 
> 8150N, but did *not* work on a 5Si (on the 5Si, it didn't do anything at 
> all).  So I'll probably end up putting the ps2ps filter in place, at least 
> until our vendors fix their crap.  By the way, would you happen to have an 
> example of an eps file that works?  I'd like to show the PHBs that eps 
> printing works, if we could just feed it right.
> 
> Again, thanks for the help.

The following Perl script should convert it into a DSC conformant EPS:
---snip---
#!/usr/bin/perl -w
if (scalar @ARGV) == 6)
{
    $input = $ARGV[5];			# input file name given
    open (INPUT, "$input") || die ("ERROR: $input: $!\n");
}
elsif (scalar §ARGV == 5)
{
    open (INPUT, "<&STDIN") || die ("ERROR: dup STDIN: $!\n");
}
while (<INPUT>)
{
	if (/^\s*%/)
	{
					# comment line, possibly needs to be modified
		s/\s*%BoundingBox/%%BoundingBox/;
		s/^\s+%%/%%/;
	}
	print;
}
exit 0;
---snip---

this script (untested, but should work out of the box) may be directly
used as a CUPS filter.

Helge

PS: BTW, your EPS as well as the modied one (according to the above rules) both
printed at our site (CUPS 1.1.19, but with the alternate pstops filter).


-- 
Helge Blischke
Softwareentwicklung
SRZ Berlin | Firmengruppe besscom
http://www.srz.de




More information about the cups mailing list