![]() |
At 10:29 02/12/98 +1000, "Campbell, Peter K" wrote: >[snip] >I've set up netpbm & the jpeg distribution & currently have it working >with gifs & jpegs. However, there is one problem - the first attachment >does not display. It's there in the postscript output, but effectively >invisible - I eventually worked out that the way to fix this is to add a >"showpage" to the postscript before the first attachment (others are >fine, the netpbm stuff automatically adds showpage at the end of >each). > >I think this is a bug in Hylafax, with some coded needed to be added >to faxmail.c++ in the faxmail subdirectory - probably in formatMIME >so that the first time formatWithExternal is called a showpage is >added. >[snip] Hi, Peter, You may be exactly the person to help us with this. Yes, the bug is known - it's on the TODO list as report #0019. There's was long thread in the mailing list archives in October 1997 with the subject "postscript attachments show up at 5% size" and since the mailing list archives are down at the moment, I will put them on my own website over the weekend for your interest. Ben Parker, Louis Reinard, and myself concluded that an additional 'showpage' instruction was required before a postscript attachment if on the first page of a fax. Ben produced some workrounds, this is one example : #!/usr/bin/bash #This script will let the GIF image through but #will try to squeeze it on the same page #/usr/local/sbin/faxmail/image/gif giftopnm $1 | ppmtopgm | pnmtops -scale 20 here is another : #!/usr/bin/perl # # This file needs to be called: # /usr/local/sbin/faxmail/application/postscript # and have the +x bit set. # # Script to work with Hylafax's faxmail. # It attempts to blow up attached postscript to full size on # the next page, instead of shrinking it to 5% on page one # which is the default in faxmail. # # Your mileage will definitely vary. # Seems to work with golfer.ps and tiger.ps in the # ghostscript/3.33/examples directory # # Ben Parker <ben@dha.unon.org> Dec 97 # # open (TEMP, "$ARGV[0]") || die "$ARGV[0] file not found.\n"; print STDERR "$ARGV[0] opened ...\n"; while (<TEMP>) { if ($_ =~ "EndProlog") { print "\% line inserted to blow up size\n"; print "showpage\n"; } print $_; } # end of script The reasons for not incorporating this approach into faxmail.c++ and textfmt.c++ is, in my opinion (please put me right if you disagree): 1. It is not legal postscript code. Ghostview thinks that there is only one page, but shows either page image at random. 2. The solution of forcing the attachment onto a new page is too crude; what if the attachment is a page footer banner? Or what if there is no message body at all before the attachment? 3. It would still fail for unusual multi-part situations, particularly where a text/plain attachment follows an application/postscript attachment. So a more flexible solution based on a wrapper around each attachment was being considered. Which is where in the story the mystery of the faxmail prologue file, faxmail.ps, comes in. No-one knows what this file is for. The default file, shown below, has no effect whatsoever on the generated image : % $Id: faxmail.c++,v 1.56 1996/07/02 19:49:58 sam Exp sam % % faxmail prologue. % /EPSbegin{save gsave 20 20 scale 200 dict begin}def /EPSend{end grestore restore}def But if you are creating functions to put at the start and end of a postscript attachment, you might call them EPSbegin and EPSend, perhaps? Like Robinson Crusoe walking on the beach, suddenly there's a sign that someone been here before.... And this where we are stuck. If you have some expertise in the Postscript language, and happy to delve into the faxmail and textfmt C++ source code, then your help and input would be very much appreciated. Regards, Phil Watkinson, Boston, UK.