I tested all the renderers.  The TIFFRenderer created an image file and
I didn't like it.  The PSRenderer didn't like my TTFs.
The PDFRenderer works for generating PDF documents and sending output
indirectly to the printer.  I actually use embedded code and pass a
PDFRenderer to the FOUserAgent then get the output in PDF format from
the transform in a stream and pass it into the load of PDDocument in the
pdfbox project and use the java print job to print it.  That has printed
everything I've attempted to every printer we have.
I'm also now using the PNGRenderer to get the output as images of pages
to load into a custom preview window.  This is working great.  My
preview window allows me to transform the document on the server and
stream the output images to the client to display so I don't have to
generate a transformer or renderer on the client machine and it's pretty
fast (way faster than the FOP PreviewPanel).  The PNGRenderer of course
extends the Java2DRenderer.
 

________________________________

From: Glenn Adams [mailto:[email protected]] 
Sent: Wednesday, March 09, 2011 2:37 PM
To: Marquart, Joshua D
Cc: [email protected]
Subject: Re: Font Weight


I agree it there are differences between Java2DRenderer and PsRenderer
that could account for this. Differences in anti-aliasing may also be at
work here. 

I'm afraid I have exclusively used the PDFRenderer to date, so I can't
offer more help on this difference. Perhaps another party may have
something more to offer.

G.


On Wed, Mar 9, 2011 at 12:06 PM, Marquart, Joshua D
<[email protected]> wrote:


        I was just doing research on this topic, came back here to
supplement my message with info, and saw you already beat me to it.

         

        Helpful method: getFontInfo().dumpAllTripletsToSystemOut()

         

        So... yes, I do not have fonts installed for font weights of
300, 500, etc. and that would account for resolving to 400/700.

         

        The problem I'm seeing is when generating a PostScript and a
Tiff from the same xsl-fo file.

        The text generated in the Tiff (for the 400 weight) appears much
lighter than identical text in the PostScript and is likely due to using
the Java2DRenderer vs. the PsRenderer.

         

        Oddly, when I set the font to Arial in the xsl-fo:

        - the font in the resulting PostScript appears Times Roman

        - the font in the resulting Tiff is identical to the font used
in the Tiff when Helvetica was specified.

         

        Other than hunting down, installing and registering a weight 500
or so font for Helvetica or Arial (where might I find one?  No idea.),
are there other options that might I employ to lessen the lightness of
the 400-weight ?

         

        Thanks,

         

        -Josh

         

        From: Glenn Adams [mailto:[email protected]] 
        Sent: Wednesday, March 09, 2011 12:02 PM
        To: Marquart, Joshua D
        Cc: [email protected]
        Subject: Re: Font Weight

         

        Josh,

         

        What you have not said yet is whether you actually have (on your
system) a font with the desired weight or not. Specifically, do you
actually have installed multiple font instances with the distinct
weights you wish to reference? If you do not, then it doesn't do much
good to discuss referring to them.

         

        On the other hand, if you do have distinct faces with weights
300, 500, 600, 800, 900, etc., installed, then it is merely a matter of
ensuring that the reference in your FO file correctly maps to the
associated font instance. That can be handled in different ways.

         

        So please answer whether you do have the fonts installed in the
first place with these weights.

         

        G.

        On Wed, Mar 9, 2011 at 9:50 AM, Marquart, Joshua D
<[email protected]> wrote:

        "FOP does not synthesize fonts with different weights. You need
to supply the fonts with the weights you specify in FO content."

         

        I understand Fop doesn't synthesize the weights.  I understand
that it has two specific built-in weights (700 and 400) that are being
used to replace other weights per the following:

         

        When I set-up using a Java2DRenderer and specify the following
FO content snippets:

         

        <fo:table-cell font-size="10pt"
font-family="Helvetica"><fo:block line-height="13pt">

        <fo:block white-space-collapse="true">

        <fo:inline font-weight="900">900 Weight </fo:inline>

        ...

        <fo:inline font-weight="800">800 Weight </fo:inline>

        ...

        <fo:inline font-weight="700">700 Weight </fo:inline>

        ...

        <fo:inline font-weight="600">600 Weight </fo:inline>

        ...

        <fo:inline font-weight="500">500 Weight </fo:inline>

        ...

        <fo:inline font-weight="400">400 Weight </fo:inline>

        ...

        <fo:inline font-weight="300">300 Weight </fo:inline>

        </fo:block></fo:block></fo:table-cell>

        ...

         

        the logger gives me the following information:

         

        WARNING: Font "Helvetica,normal,900" not found. Substituting
with "Helvetica,normal,700".

        WARNING: Font "Helvetica,normal,800" not found. Substituting
with "Helvetica,normal,700".

        WARNING: Font "Helvetica,normal,600" not found. Substituting
with "Helvetica,normal,700".

        WARNING: Font "Helvetica,normal,500" not found. Substituting
with "Helvetica,normal,400".

        WARNING: Font "Helvetica,normal,300" not found. Substituting
with "Helvetica,normal,400".

         

        So I would need to supply very specific replacement fonts for
Helvetica,normal,900 ( and 800-300, not counting 400)?

        (Same as above when replacing Helvetica with Arial).

         

        I DO understand the following:

         

        1- that per the current specs, item 7.9.9 for font-weight has a
"TODO <relative> font weights" message.

        2 - that per the current build, the font classes generated from
Helvetica.xml and HelveticaBold.xml are used for 400 and 700
respectively

        3 - that per the fuzzy replacement, 700 is used for 900-600 and
400 is used for 500-100(probably).

         

        So my questions still stand

        1 - is there a simpler way to use / access / apply a darker 500
or 600 weight Helvetica and if so, what's the best process to handle it
given the codebase?

        2 - should I instead render a "Helvetica500.xml" and generate
the appropriate font class; obviously since that's not yet been done
with the existing fop codebase, it is probably a lot more work than
needed.

        3 - Any other option I should pursue?

         

        If there is a process started to handle item 7.9.9, I would be
happy to pitch in and help, I am just not certain where to start.

         

        Thanks,

         

        Josh

         

         

        From: Glenn Adams [mailto:[email protected]] 
        Sent: Tuesday, March 08, 2011 6:40 PM
        To: [email protected]
        Cc: Marquart, Joshua D
        Subject: Re: Font Weight

         

        FOP does not synthesize fonts with different weights. You need
to supply the fonts with the weights you specify in FO content.

         

        Regards,

        Glenn

        On Tue, Mar 8, 2011 at 4:31 PM, Marquart, Joshua D
<[email protected]> wrote:

        I have a question about Font Weight.

         

        We're using Helvetica and using FOP to take the FO file and
generate it as both (1) a PostScript file and (2) a TIFF file.  

         

        Additionally, we are able to use third-party software to take
the PostScript file and convert it directly to a second TIFF file (for
comparison reasons).

         

        Of course, the fonts on the TIFF from FOP are a little pixilated
and the "normal" font could stand to be rendered a bit darker.

         

        I am using Helvetica and tried to set the font-weight to 500 or
600, but it gets replaced with weight 400, which is apparently the
"normal" Helvetica font registered in the system.

        Font-weight Bold and values of 800 and 900 use the "bold"
Helvetica which is weight 700.

         

        Is there an easy way to use / access a darker 500 or 600 weight
Helvetica, or possibly render the or am I really sunk here?

         

        I've already extended the Java2DRenderer,  for my own purposes.


         

        The following Graphics2D rendering hints don't seem to do much
when included:

         

        graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);

        graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);

        graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

        graphics.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);

        graphics.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,
RenderingHints.VALUE_STROKE_PURE);

         

        Suggestions would be very helpful.

         

        Much thanks,

         

        Josh 

         

        

________________________________

        

        The information in this message may be proprietary and/or
confidential, and protected from disclosure. If the reader of this
message is not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient, you
are hereby notified that any dissemination, distribution or copying of
this communication is strictly prohibited. If you have received this
communication in error, please notify First Data immediately by replying
to this message and deleting it from your computer. 


Reply via email to