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

Reply via email to