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

Reply via email to