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