Bug#1070406: Qt5: badly clips some fonts when rendering to PDFs
Dixi quod…
>correct… but it only changes the metrics in the head table, not
>in the OS/2 or hhea tables (as can be seen when loading the font
>from the PDF in FontForge). Furthermore, the /FontBBox in the PDF
>is constructed from the values from the original font.
And Atril uses the values from the hhea table (found by hexediting).
#define TO_TTF(x) qRound(x * 2048. / ppem)
This is used in things like…
font.hhea.maxAdvanceWidth = TO_TTF(fontEngine->maxCharWidth());
… but not in…
font.hhea.ascender = qRound(properties.ascent);
font.hhea.descender = -qRound(properties.descent);
font.hhea.lineGap = qRound(properties.leading);
… and of course not when the OS/2 table is copied:
if (!noEmbed) {
QTtfTable os2;
os2.tag = MAKE_TAG('O', 'S', '/', '2');
os2.data = fontEngine->getSfntTable(os2.tag);
if (!os2.data.isEmpty())
tables.append(os2);
}
(all examples from stretch’s Qt, as the oldest I had at hand)
bye,
//mirabilos
--
15:39⎜«mika:#grml» mira|AO: "mit XFree86® wär’ das nicht passiert" - muhaha
15:48⎜<thkoehler:#grml> also warum machen die xorg Jungs eigentlich alles
kaputt? :) 15:49⎜<novoid:#grml> thkoehler: weil sie als Kinder nie den
gebauten Turm selber umschmeissen durften? -- ~/.Xmodmap wonders…
Reply to: