Fix initial kerning when there is a horzscale set

Reasoning: the pTextAdvanceX in CPDF_TextObject::CalcPositionData is
being multiplied by horz_scale in CPDF_TextObject::CalcPositionData.
Then, m_pCurStates->m_TextX is updated by this amount. So multiply by
the scale also when updating with initial and final kerning and when
nsegs = 0.

BUG=528103

Review-Url: https://codereview.chromium.org/2542743002
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index df0d5f1..45a468f 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1271,7 +1271,9 @@
   if (fInitKerning != 0) {
     if (!pFont->IsVertWriting()) {
       m_pCurStates->m_TextX -=
-          (fInitKerning * m_pCurStates->m_TextState.GetFontSize()) / 1000;
+          (fInitKerning * m_pCurStates->m_TextState.GetFontSize() *
+           m_pCurStates->m_TextHorzScale) /
+          1000;
     } else {
       m_pCurStates->m_TextY -=
           (fInitKerning * m_pCurStates->m_TextState.GetFontSize()) / 1000;
@@ -1313,7 +1315,8 @@
   if (pKerning && pKerning[nsegs - 1] != 0) {
     if (!pFont->IsVertWriting()) {
       m_pCurStates->m_TextX -=
-          (pKerning[nsegs - 1] * m_pCurStates->m_TextState.GetFontSize()) /
+          (pKerning[nsegs - 1] * m_pCurStates->m_TextState.GetFontSize() *
+           m_pCurStates->m_TextHorzScale) /
           1000;
     } else {
       m_pCurStates->m_TextY -=
@@ -1345,7 +1348,8 @@
   if (nsegs == 0) {
     for (size_t i = 0; i < n; i++) {
       m_pCurStates->m_TextX -=
-          (pArray->GetNumberAt(i) * m_pCurStates->m_TextState.GetFontSize()) /
+          (pArray->GetNumberAt(i) * m_pCurStates->m_TextState.GetFontSize() *
+           m_pCurStates->m_TextHorzScale) /
           1000;
     }
     return;