Commit e8714161 authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander Trofimov

сдвиг букв завязан на матрицу шрифта

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@65352 954022d7-b5bf-4e40-9824-e11837661b57
parent 41332602
......@@ -986,7 +986,9 @@ INT CFontFile::GetString(CGlyphString& oString)
oString.SetBBox(nIndex, 0, 0, 0, 0);
oString.SetState (nIndex, glyphstateMiss);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing);
double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
unPrevGID = 0;
continue;
......@@ -1025,7 +1027,9 @@ INT CFontFile::GetString(CGlyphString& oString)
oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics;
oString.SetBBox(nIndex, oSizes.oBBox.fMinX, oSizes.oBBox.fMaxY, oSizes.oBBox.fMaxX, oSizes.oBBox.fMinY);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing);
double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
if (m_bNeedDoBold)
{
......@@ -1272,7 +1276,9 @@ INT CFontFile::GetString2(CGlyphString& oString)
oString.SetBBox(nIndex, 0, 0, 0, 0);
oString.SetState (nIndex, glyphstateMiss);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing);
double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
unPrevGID = 0;
continue;
......@@ -1311,8 +1317,10 @@ INT CFontFile::GetString2(CGlyphString& oString)
oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics;
oString.SetBBox(nIndex, oSizes.oBBox.fMinX, oSizes.oBBox.fMaxY, oSizes.oBBox.fMaxX, oSizes.oBBox.fMinY);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing);
double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
if (m_bNeedDoBold)
{
// Когда текст делаем жирным сами, то мы увеличиваем расстояние на 1 пиксель в ширину (независимо от DPI и размера текста всегда 1 пиксель)
......@@ -1570,7 +1578,8 @@ INT CFontFile::GetString2C(CGlyphString& oString)
pCurGlyph->fY = (float)(oString.m_arrCTM[5] + fX * oString.m_arrCTM[1] + fY * oString.m_arrCTM[3] - oString.m_fY);
}
fPenX += (float)(m_oCacheSizes[charSymbolObj].fAdvanceX + m_dCharSpacing);
double dAdvanceW = m_arrdFontMatrix[0] * m_oCacheSizes[charSymbolObj].fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
if (m_bNeedDoBold)
{
// Когда текст делаем жирным сами, то мы увеличиваем расстояние на 1 пиксель в ширину (независимо от DPI и размера текста всегда 1 пиксель)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment