summaryrefslogtreecommitdiff
path: root/core/fpdftext/cpdf_textpage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdftext/cpdf_textpage.cpp')
-rw-r--r--core/fpdftext/cpdf_textpage.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 9cde4f5026..a919aa51ec 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -239,9 +239,11 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start,
}
if (bFlagNewRect) {
FX_FLOAT orgX = info_curchar.m_OriginX, orgY = info_curchar.m_OriginY;
- CFX_Matrix matrix, matrix_reverse;
+ CFX_Matrix matrix;
info_curchar.m_pTextObj->GetTextMatrix(&matrix);
matrix.Concat(info_curchar.m_Matrix);
+
+ CFX_Matrix matrix_reverse;
matrix_reverse.SetReverse(matrix);
matrix_reverse.Transform(orgX, orgY);
rect.left = info_curchar.m_CharBox.left;
@@ -766,6 +768,7 @@ void CPDF_TextPage::ProcessTextObject(
FX_FLOAT this_width = GetCharWidth(item.m_CharCode, pTextObj->GetFont()) *
pTextObj->GetFontSize() / 1000;
this_width = FXSYS_fabs(this_width);
+
CFX_Matrix this_matrix;
pTextObj->GetTextMatrix(&this_matrix);
this_width = FXSYS_fabs(this_width);
@@ -1218,6 +1221,7 @@ CPDF_TextPage::TextOrientation CPDF_TextPage::GetTextObjectWritingMode(
CPDF_TextObjectItem first, last;
pTextObj->GetCharInfo(0, &first);
pTextObj->GetCharInfo(nChars - 1, &last);
+
CFX_Matrix textMatrix;
pTextObj->GetTextMatrix(&textMatrix);
textMatrix.TransformPoint(first.m_OriginX, first.m_OriginY);
@@ -1327,9 +1331,12 @@ CPDF_TextPage::GenerateCharacter CPDF_TextPage::ProcessInsertObject(
this_width = FXSYS_fabs(this_width);
FX_FLOAT threshold =
last_width > this_width ? last_width / 4 : this_width / 4;
- CFX_Matrix prev_matrix, prev_reverse;
+
+ CFX_Matrix prev_matrix;
m_pPreTextObj->GetTextMatrix(&prev_matrix);
prev_matrix.Concat(m_perMatrix);
+
+ CFX_Matrix prev_reverse;
prev_reverse.SetReverse(prev_matrix);
FX_FLOAT x = pObj->GetPosX();
FX_FLOAT y = pObj->GetPosY();