Hello Michal, My remark was relative to class PdfFontMetricsFreetype, not PdfFontMetricsObject.
But, in your patch, you also divide font char space by 100, twice: return (dWidth * m_matrix.front().GetReal() + this->GetFontCharSpace() / 100.0) * this->GetFontSize() * this->GetFontScale() / 100.0; Are you sure of that ? In PDF format, the font char space (Tc) is given in PDF units, not in percent. Does it mean, we have to transform this Tc value into percent before affecting the m_fFontCharSpace variable ? If yes, how shall we do that ? Thank you for your help Christophe Le lun. 10 mai 2021 à 20:54, Michal Sudolsky <sudols...@gmail.com> a écrit : > > > On Mon, May 10, 2021 at 12:23 PM Christophe <xto...@gmail.com> wrote: > >> Hello all, >> >> I have a doubt relative to this method definition: >> >> double PdfFontMetricsFreetype::CharWidth( unsigned char c ) const >> { >> double dWidth = m_vecWidth[static_cast<unsigned int>(c)]; >> >> return dWidth * static_cast<double>(this->GetFontSize() * this >> ->GetFontScale() / 100.0) / 1000.0 + >> static_cast<double>( this->GetFontSize() * this >> ->GetFontScale() / 100.0 * this->GetFontCharSpace() / 100.0); >> } >> >> The Char Space is divided by 100.0 and I think it is an error as it is >> not the case for PdfFontMetricsObject::CharWidth, nor for >> PdfFontMetricsObject::CharWidth. >> >> > It is intended to be divided by 100. See comment above that function: > > /** Set the character spacing of this metrics object > > * *\param *fCharSpace character spacing in percent > > */ > > *inline* *void* SetFontCharSpace( *float* fCharSpace ); > > >> What do you think ? >> >> Thank you >> >> Christophe >> _______________________________________________ >> Podofo-users mailing list >> Podofo-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/podofo-users >> >
_______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users