On Tue, May 11, 2021 at 5:49 PM Christophe <xto...@gmail.com> wrote: > Michal, > > It means we can't directly call function *SetFontCharSpace* with Tc ? We > have to make a computation based on font size in our applicative code. In > this case, could you please elaborate and provide us the right > transformation from Tc to FontCharSpace ? > > This is how it was done seems. Why would you do that? You are parsing some existing content stream and then drawing it again?
> Thank you > > Christophe > > > Le mar. 11 mai 2021 à 16:23, Michal Sudolsky <sudols...@gmail.com> a > écrit : > >> 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