Good morning,
thank you for the hints, now I am overwriting showGlyph() and trying to
get the value with
PDSimpleFont sf = (PDSimpleFont) font;
String name = sf.getEncoding().getName(code);
sf.getPath(name).getBounds()
but I am getting the same height, no matter which font size is set. This
happens with type1 and truetype fonts. What am I doing wrong ?
Am 07.03.2016 um 18:16 schrieb Tilman Hausherr:
Am 07.03.2016 um 11:46 schrieb Peter Prusinowski:
Okay, thank you for information. I tried to get the height with
getPath(). If its one of the 14 standard fonts, I can get the height
with PDType1Font.fontName.getPath(text.getUnicode()).getBounds()).
But I dont know how to get the information from other fonts in a
generic way. Do you have a hint for me ?
It is not available for all fonts. It is available for all
PDSimpleFont objects, except for PDType3Font (which doesn't draw just
vectors).
The best would be to look at the source code, at PageDrawer.java
createGlyph2D() returns a Glyph2D for the font. That one you can use
for glyph2D.getPathForCharacterCode(code);
See also showFontGlyph(), you can override that one in a subclass.
Have also a look at showGlyph(), this makes a difference between type3
fonts and others. See also CustomGraphicsStreamEngine.
Tilman
Peter
Am 06.03.2016 um 17:40 schrieb Tilman Hausherr:
In 1.8, for Standard 14 fonts (yours is) it uses the bounding box of
each glyph. In a string, it uses a maximum which it keeps for the
string, that results in the weird effect that the "d" is slightly
higher. If the string is changed so that another glyph is appended,
the larger height is kept.
In 2.0 (and in 1.8 for non standard 14 fonts), it uses 1/2 of the
bounding box from the font descriptor. The not-halved bounding box
is usually too high.
Anyway, the 1.8 logic would work for you for standard 14 fonts, but
not for all other fonts.
So there is no bug in 1.8 not in 2.0.
Tilman
Am 03.03.2016 um 19:05 schrieb Tilman Hausherr:
Am 03.03.2016 um 09:11 schrieb Peter Prusinowski:
Okay, I am trying to replace some words in documents and use
text.height to "delete" these words. Here is an example document :
http://workupload.com/file/G8ipDe8j
The getHeightDir() is not the best strategy, for the reason I
mentioned yesterday. In your case, you should call getPath() on the
glyphs and get the bounding box. Or just get the font bounding box
(there's a method) height, however that one is often too high, so
there's a risk that you blank the line above.
But thanks for the file, I'll try to find out why it is different.
The heights in 1.8 are surprising, usually they are never so
"perfect" (as I said yesterday). And for some reason, in 1.8 the
height of the last glyph is slightly different although it is all
in one string.
1.8:
String[100.0,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=10.108002]H
String[110.108,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=7.784004]e
String[117.892006,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=3.8919983]l
String[121.784004,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=3.8919983]l
String[125.676,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=8.553993]o
String[134.23,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=3.8919983]
String[138.122,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=13.216003]W
String[151.338,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=8.554001]o
String[159.892,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=5.445999]r
String[165.338,92.0 fs=14.0 xscale=14.0 height=10.052001
space=3.8920004 width=3.8919983]l
String[169.23,92.0 fs=14.0 xscale=14.0 *height=10.248001*
space=3.8920004 width=8.554001]d <========= ???
2.0:
String[100.0,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=10.108002]H
String[110.108,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=7.7839966]e
String[117.892,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=3.8919983]l
String[121.784,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=3.8919983]l
String[125.675995,92.0 fs=14.0 xscale=14.0 height=8.33
space=3.8920004 width=8.554001]o
String[134.23,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=3.8919983]
String[138.122,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=13.216003]W
String[151.338,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=8.554001]o
String[159.892,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=5.445999]r
String[165.338,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=3.8919983]l
String[169.23,92.0 fs=14.0 xscale=14.0 height=8.33 space=3.8920004
width=8.554001]d
Tilman
Peter
Am 02.03.2016 um 19:24 schrieb Tilman Hausherr:
Am 02.03.2016 um 14:48 schrieb Peter Prusinowski:
Hello,
I have noticed that the PrintTextLocations example in 1.8 and
2.0 gives different results for text.getHeightDir(). In 1.8 the
value seems to be right, but in 2.0 it is too small. I tried
with some PDFBox created documents. Is this a bug ?
Maybe, maybe not. The height is a heuristic value to help with
text extraction, which is sometimes computed differently in 2.0,
and it is usually about the height of an "a". Please upload the PDF.
Tilman
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org