[
https://issues.apache.org/jira/browse/PDFBOX-2649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Nevidomsky updated PDFBOX-2649:
------------------------------------
Description:
{code}
@Test
testRelativeWidth() {
PDFont font = PDType0Font.load(document,
this.getClass().getResourceAsStream("/LiberationSans-Regular.ttf"));
float wO = font.getStringWidth("O");
float wP = font.getStringWidth("P");
float wN = font.getStringWidth("N");
Assert.assertTrue("O must be wider than P", wO>wP);
Assert.assertTrue("O must be wider than N", wO>wN);
}
{code}
I can see that there is a confusion in the process between GID and CID values.
The reason may not be entirely clear to me, but
PDCIDFontType2Embedder.buildWidths(COSDictionary cidFont) seems to name "cid"
something that in my opinion is still a glyph id. And when it comes to
PDCIDFont.getWidth(int), the "widths" map that should presumably contain
cid->width values in reality contains git->width.
was:
{code}
@Test
testRelativeWidth() {
PDFont font = PDType0Font.load(document,
this.getClass().getResourceAsStream("/LiberationSans-Regular.ttf"));
float wO = font.getStringWidth("O");
float wP = font.getStringWidth("P");
float wN = font.getStringWidth("N");
Assert.assertTrue("O must be wider than P", wO>wP);
Assert.assertTrue("O must be wider than N", wO>wN);
}
{code}
I can see that there is a confusion in the process between GID and CID values.
The reason may not be entirely clear to me, but
PDCIDFontType2Embedder.buildWidths(COSDictionary cidFont) seems to name "cid"
something that in my opinion is still a glyph id. And when it comes to
PDCIDFont.getWidth(int), the widths that should contain cid->width in reality
contains git->width.
> Character widths incorrect in a loaded font
> -------------------------------------------
>
> Key: PDFBOX-2649
> URL: https://issues.apache.org/jira/browse/PDFBOX-2649
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 2.0.0
> Reporter: Alex Nevidomsky
>
> {code}
> @Test
> testRelativeWidth() {
> PDFont font = PDType0Font.load(document,
> this.getClass().getResourceAsStream("/LiberationSans-Regular.ttf"));
> float wO = font.getStringWidth("O");
> float wP = font.getStringWidth("P");
> float wN = font.getStringWidth("N");
> Assert.assertTrue("O must be wider than P", wO>wP);
> Assert.assertTrue("O must be wider than N", wO>wN);
> }
> {code}
> I can see that there is a confusion in the process between GID and CID
> values. The reason may not be entirely clear to me, but
> PDCIDFontType2Embedder.buildWidths(COSDictionary cidFont) seems to name "cid"
> something that in my opinion is still a glyph id. And when it comes to
> PDCIDFont.getWidth(int), the "widths" map that should presumably contain
> cid->width values in reality contains git->width.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]