Hi Tomas,

Sorry about the delay.

Tomas Rimšelis wrote:
> I have came up with the solution - I've
> used FontMetrics's getWidth(codePoint, fontSize) for the character width and
> sum all the characters in a word. It is not as clear as a solution with Java
> AWT, but still it works.

The PDF renderer doesn’t use Java AWT to get glyph sizes, but FOP’s own
font sub-system. This is because the font (or a subset of it) must
usually be embedded into the resulting PDF, and AWT doesn’t give access
to the font file for that purpose.

Note that your solution is only approximate: kerning may occur between
some glyphs (increasing or reducing the space between two glyphs to make
the text look better). Also, glyph substitution may occur, or even
a different font selected if the current font is missing glyphs for some
characters.

However, this approximation will probably be good enough in most cases
to suit your needs.


> 2010/1/4 Tomas Rimšelis <[email protected]>
> 
>> Hello,
>> I need to programatically get a width of some text (word, specifically) in
>> a given font, size and style, which will be generated in Apache FOP (version
>> 0.95) PDF document.
>>
>> The problem is that I need to know, if given word will fit to a column with
>> a known width, and if it won't - resize to a fitable size. So far I have
>> used java.awt.FontMetrics.stringWidth() method for this, but it seems that
>> Java AWT's and FOP's PDF renderer generate text of different sizes.


Vincent

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to