trinity-users@lists.pearsoncomputing.net

Message: previous - next
Month: September 2015

Re: [trinity-users] kpdf vs big document= odd failure

From: Gene Heskett <gheskett@...>
Date: Sun, 13 Sep 2015 10:11:07 -0400
On Sunday 13 September 2015 06:17:04 Lisi Reisz wrote:

> On Saturday 12 September 2015 23:28:46 Gene Heskett wrote:
> > The filter is primarily because in order for the current gs to print
> > it, there needs to be a translation between a pdf and a ps.
>
> Thanks, Gene.  But my question was why??  Why does it have to be
> translated?
>
> Lisi

GS, aka Ghostscript, back in v5 days, had a very good pdf level 2 
renderer.  It was also hell to compile, I did it twice on a big box 
amiga in the '90's.

Somewhere along the line, someone decided the best way to handle the 
bloat was to excise the pdf stuffs from ghostscript and let it 
concentrate on postscript only.  Hence the need for a pipeing filter, 
called pdftops, to translate and expand the pdf into postscript that gs 
understands.

Both are random access file formats, but pdf uses a second lookup depth I 
haven't fully understood, and that must be translated and piped into gs 
as pure postscript.

FWIW, a properly done Level 3 pdf is the ultimate file compression when 
applied to a large document.  This particular file that generates a 740 
page, with lots of graphics, manual is just north of 121 megabytes.  By 
the time pdftops has unpacked it and sent it to gs, it is still quite 
conmpressed, but the translation makes about 546 megabytes that gets 
sent over the pipe to gs.  The resultant data that flows down the cat5 
(or the slower USB if your printer doesn't have a network presence) to 
the printer is probably in excess of 5 terrabytes.

In the old days, I did not have a duplex capable printer, so I would 
command gs to make a file per page, then wrote an arexx script to send 
all odd pages to the printer, then when that was done, turn the pile 
over and then then send all the even numbered pages.  But that filled up 
a 1Gb seagate drive , so had to be cleaned up if I wanted to do it to a 
different big pdf, else it was out of disk.

But I had to make the arexx script check the file size, and if it was 
under 100 bytes, it was nothing but the setup and teardown for the page, 
so rather than send that file to the printer, which if it was sitting at 
TOF, ignored a formfeed, so I sent it a line feed to get it off of TOF 
position, then the formfeed, which would eject the desired blank page, 
keeping the printout in the order desired, even for a 500+ page 
document.  Without that, the binding ditch was fubar.  Thats the space 
at the left edge of an odd page, or the right edge of an even page where 
a wider margin is used so the 3 hole punch misses the text.

I had an extended, and fruitless discussion with the gs maintainer at the 
time who couldn't conceive of a printer ignoring a formfeed if it was 
sitting at the top of the page already, but every Merican printer I ever 
had did ignore it including a couple Brother Daisy wheelers. Writing the 
arexx script was less hassle than trying to convince that person that he 
needed to add one linefeed byte in front of the formfeed.  Sigh...

Your daily dose of ancient ghsotscript trivia. ;-)

Cheers Lisi, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>