What is more: Tc is in unscaled text units, only subject to scaling by Th, not Tfs. I think this needs to be:
return (dWidth * m_matrix.front().GetReal() * this->GetFontSize() + this->GetFontCharSpace()) * (this->GetFontScale() / 100.0); Cheers, Christopher The MathWorks GmbH | Friedlandstr.18 | 52064 Aachen | District Court Aachen | HRB 8082 | Managing Directors: Bertrand Dissler, Steven D. Barbo, Jeanne O’Keefe From: Christophe <xto...@gmail.com> Sent: Tuesday, May 11, 2021 9:15 To: Michal Sudolsky <sudols...@gmail.com> Cc: podofo-us...@lists.sf.net Subject: Re: [Podofo-users] PdfFontMetricsFreetype::CharWidth 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<mailto:sudols...@gmail.com>> a écrit : On Mon, May 10, 2021 at 12:23 PM Christophe <xto...@gmail.com<mailto: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<mailto:Podofo-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/podofo-users<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