I sent
this directly to Yvonne, but I have received error messages from materna.de
indicating that it may not have gone through. Maybe it will be more successful
through the FOP list... and it could be interesting to others using the
PCLRenderer.
Art
-----Original Message-----
From: Art Welch
Sent: Friday, April 26, 2002 12:09 PM
To: 'Moebius, Yvonne'
Subject: RE: PCLRenderer
From: Art Welch
Sent: Friday, April 26, 2002 12:09 PM
To: 'Moebius, Yvonne'
Subject: RE: PCLRenderer
Hi
Yvonne,
Unfortunately trying to pass control codes (either for font changes or
image data) is not likely to work very well. What I have done in the past when I
wanted a different font was to use one of the existing fonts that had metrics
similar to the font I wanted. This would allow the layout to work. Then
postprocess the PCL output and do a search and replace on the control codes.
This of course would be problematic if you want to use several non-standard
fonts. In my case I just needed to use alternate fonts for Helvetica and Times.
The alternates had almost identical metrics. This worked quite
well.
If you
are open to building your own custom version of FOP. The PCLRenderer uses a
function to map the font names to PCL control codes. You could add your fonts to
this function. This may work. I am assuming that the fonts are resident in the
printer and you have added the fonts to FOP. At one time I was actually thinking
that I would add all the standard PCL mappings to this function. If you do this,
I would be happy to commit your changes to CVS. Of course the larger case
includes support for fonts not resident on the printer. Supporting font download
looked a bit icky. Since the font names can be a bit fussy, another option may
be to add some kind of mapping (FOP font to printer font). But this all starts
getting complex.
Dithering is a technique to increase the apparent color depth of an
image. Basically you define a region of the image and use the available colors
to visually approximate a greater range of colors. The simplest way to do this
is to use pixel expansion to do this - essentially resolution is traded for
color depth. For example if you wanted to represent four shades of gray on a
device that can only set individual pixels to black or white you could use four
pixels to represent each source image pixel (doubling the size of the image).
The four shades could look like this ('.'=off, '#'=on):
.
.
.
.
.
#
#
.
.
#
#
#
#
#
#
#
This
is the idea anyway. A simple mapping does not really give the best results.
There are sophisticated algorithms that produce much better results. To
complicate things, the algorithm that produces the best visual results varies
with the source image, resolutions, color depths, etc. I would use an image
processing application to translate the images. There may be functionality in
the JDK to do this. I am on a "graphically challenged" platform, so generally
avoid the graphics APIs.
I hope
this helps,
Art
-----Original Message-----
From: Moebius, Yvonne [mailto:[EMAIL PROTECTED]]
Sent: Thursday, April 25, 2002 3:04 AM
To: Art Welch
Subject: PCLRendererHello Art,I am not sure if I should send this e-mail to the FOP mailing list, but as you offered me to inform you about my main problems with the PCLRenderer, I am writing to you directly.The most important thing for me is to include fonts, which are not included in the Adobe base 14 font package. But the limitation is that with the PCLRenderer only the original fonts built into FOP are supported.As long as the PCLRenderer has got this limitation, I am thinking of a kind of workaround, to tell the printer which fonts I want to use. I tried to send the font information as PCL commands to my printer as unparsed CDATA. But these font information contain the control character <ESC>, and this is not allowed in CDATA.Maybe you have got any indeas for a better workaround?The other thing I find onerous are the <fo:external-graphic>s, they only appear in black and white, and I am missing the grey shades. On the output format site (http://xml.apache.org/fop/output.html) is written :"If you need to print a non-monochrome image you should dither it first. " I don't know excectly what is meant with "dither" in this context. Does it mean that there is any way to make the grey shades of my image visible?In this case, too, I am thinking of including my images as unparsed PCL commands, but again there is the problem with the control characters.I would be thankful if you have any ideas of how to work around these problems, or if you can tell me if it will be possible to remove these limitations.Bye, Yvonne
