Hi, On Tue, May 11, 2021 at 9:15 AM Christophe <xto...@gmail.com> wrote:
> Hello Michal, > > My remark was relative to class PdfFontMetricsFreetype, not > PdfFontMetricsObject. > > Yes, I meant that implementation in PdfFontMetricsFreetype (and also PdfFontMetricsBase14) is correct but the problem is with 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; > > This is same as what is used in PdfFontMetricsFreetype and PdfFontMetricsBase14 (I just simplified the formula): *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); > 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 ? > > Both font scale and font char space are in percent in podofo. Font char space is not directly passed as Tc. Font scale is in percent also in pdf. m_oss << m_pFont->GetFontCharSpace() * m_pFont->GetFontSize() / 100.0 << " Tc" << std::endl; 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