diff options
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r-- | core/fpdfapi/page/cpdf_textobject.cpp | 34 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_textobject.h | 14 |
2 files changed, 20 insertions, 28 deletions
diff --git a/core/fpdfapi/page/cpdf_textobject.cpp b/core/fpdfapi/page/cpdf_textobject.cpp index 74ea6ebc7d..2ca996b2d4 100644 --- a/core/fpdfapi/page/cpdf_textobject.cpp +++ b/core/fpdfapi/page/cpdf_textobject.cpp @@ -13,10 +13,6 @@ #include "third_party/base/ptr_util.h" #include "third_party/base/stl_util.h" -CPDF_TextObjectItem::CPDF_TextObjectItem() : m_CharCode(0) {} - -CPDF_TextObjectItem::~CPDF_TextObjectItem() {} - CPDF_TextObject::CPDF_TextObject() {} CPDF_TextObject::~CPDF_TextObject() { @@ -28,26 +24,26 @@ int CPDF_TextObject::CountItems() const { void CPDF_TextObject::GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const { pInfo->m_CharCode = m_CharCodes[index]; - pInfo->m_Origin = CFX_PointF(index ? m_CharPos[index - 1] : 0, 0); + pInfo->m_OriginX = index ? m_CharPos[index - 1] : 0; + pInfo->m_OriginY = 0; if (pInfo->m_CharCode == CPDF_Font::kInvalidCharCode) return; CPDF_Font* pFont = m_TextState.GetFont(); - if (!pFont->IsCIDFont()) + if (!pFont->IsCIDFont()) { return; - if (!pFont->AsCIDFont()->IsVertWriting()) + } + if (!pFont->AsCIDFont()->IsVertWriting()) { return; - + } uint16_t CID = pFont->AsCIDFont()->CIDFromCharCode(pInfo->m_CharCode); - pInfo->m_Origin = CFX_PointF(0, pInfo->m_Origin.x); - - short vx; - short vy; + pInfo->m_OriginY = pInfo->m_OriginX; + pInfo->m_OriginX = 0; + short vx, vy; pFont->AsCIDFont()->GetVertOrigin(CID, vx, vy); - FX_FLOAT fontsize = m_TextState.GetFontSize(); - pInfo->m_Origin.x -= fontsize * vx / 1000; - pInfo->m_Origin.y -= fontsize * vy / 1000; + pInfo->m_OriginX -= fontsize * vx / 1000; + pInfo->m_OriginY -= fontsize * vy / 1000; } int CPDF_TextObject::CountChars() const { @@ -181,12 +177,12 @@ FX_FLOAT CPDF_TextObject::GetCharWidth(uint32_t charcode) const { return pCIDFont->GetVertWidth(CID) * fontsize; } -CFX_FloatRect CPDF_TextObject::GetRect() const { - return CFX_FloatRect(m_Left, m_Bottom, m_Right, m_Top); +FX_FLOAT CPDF_TextObject::GetPosX() const { + return m_Pos.x; } -CFX_PointF CPDF_TextObject::GetPos() const { - return CFX_PointF(m_Pos.x, m_Pos.y); +FX_FLOAT CPDF_TextObject::GetPosY() const { + return m_Pos.y; } CPDF_Font* CPDF_TextObject::GetFont() const { diff --git a/core/fpdfapi/page/cpdf_textobject.h b/core/fpdfapi/page/cpdf_textobject.h index 9e763a164e..bef1b1ebc4 100644 --- a/core/fpdfapi/page/cpdf_textobject.h +++ b/core/fpdfapi/page/cpdf_textobject.h @@ -14,13 +14,10 @@ #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" -class CPDF_TextObjectItem { - public: - CPDF_TextObjectItem(); - ~CPDF_TextObjectItem(); - +struct CPDF_TextObjectItem { uint32_t m_CharCode; - CFX_PointF m_Origin; + FX_FLOAT m_OriginX; + FX_FLOAT m_OriginY; }; class CPDF_TextObject : public CPDF_PageObject { @@ -42,9 +39,8 @@ class CPDF_TextObject : public CPDF_PageObject { void GetCharInfo(int index, uint32_t* charcode, FX_FLOAT* kerning) const; void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const; FX_FLOAT GetCharWidth(uint32_t charcode) const; - - CFX_FloatRect GetRect() const; - CFX_PointF GetPos() const; + FX_FLOAT GetPosX() const; + FX_FLOAT GetPosY() const; CFX_Matrix GetTextMatrix() const; CPDF_Font* GetFont() const; FX_FLOAT GetFontSize() const; |