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) ...@@ -986,7 +986,9 @@ INT CFontFile::GetString(CGlyphString& oString)
oString.SetBBox(nIndex, 0, 0, 0, 0); oString.SetBBox(nIndex, 0, 0, 0, 0);
oString.SetState (nIndex, glyphstateMiss); oString.SetState (nIndex, glyphstateMiss);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing); double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
unPrevGID = 0; unPrevGID = 0;
continue; continue;
...@@ -1025,7 +1027,9 @@ INT CFontFile::GetString(CGlyphString& oString) ...@@ -1025,7 +1027,9 @@ INT CFontFile::GetString(CGlyphString& oString)
oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics; oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics;
oString.SetBBox(nIndex, oSizes.oBBox.fMinX, oSizes.oBBox.fMaxY, oSizes.oBBox.fMaxX, oSizes.oBBox.fMinY); 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) if (m_bNeedDoBold)
{ {
...@@ -1272,7 +1276,9 @@ INT CFontFile::GetString2(CGlyphString& oString) ...@@ -1272,7 +1276,9 @@ INT CFontFile::GetString2(CGlyphString& oString)
oString.SetBBox(nIndex, 0, 0, 0, 0); oString.SetBBox(nIndex, 0, 0, 0, 0);
oString.SetState (nIndex, glyphstateMiss); oString.SetState (nIndex, glyphstateMiss);
fPenX += (float)(oSizes.fAdvanceX + m_dCharSpacing); double dAdvanceW = m_arrdFontMatrix[0] * oSizes.fAdvanceX;
fPenX += (float)(dAdvanceW + m_dCharSpacing);
unPrevGID = 0; unPrevGID = 0;
continue; continue;
...@@ -1311,8 +1317,10 @@ INT CFontFile::GetString2(CGlyphString& oString) ...@@ -1311,8 +1317,10 @@ INT CFontFile::GetString2(CGlyphString& oString)
oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics; oString.GetAt(nIndex)->oMetrics = oSizes.oMetrics;
oString.SetBBox(nIndex, oSizes.oBBox.fMinX, oSizes.oBBox.fMaxY, oSizes.oBBox.fMaxX, oSizes.oBBox.fMinY); 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) if (m_bNeedDoBold)
{ {
// Когда текст делаем жирным сами, то мы увеличиваем расстояние на 1 пиксель в ширину (независимо от DPI и размера текста всегда 1 пиксель) // Когда текст делаем жирным сами, то мы увеличиваем расстояние на 1 пиксель в ширину (независимо от DPI и размера текста всегда 1 пиксель)
...@@ -1570,7 +1578,8 @@ INT CFontFile::GetString2C(CGlyphString& oString) ...@@ -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); 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) if (m_bNeedDoBold)
{ {
// Когда текст делаем жирным сами, то мы увеличиваем расстояние на 1 пиксель в ширину (независимо от DPI и размера текста всегда 1 пиксель) // Когда текст делаем жирным сами, то мы увеличиваем расстояние на 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