Transform font size to user space for valid text size comparison.
[pdfium.git] / core / src / fpdftext / fpdf_text.cpp
index 048ebde..a4a124d 100644 (file)
@@ -9,7 +9,6 @@
 #include "../../include/fpdftext/fpdf_text.h"
 #include "txtproc.h"
 #include "text_int.h"
-#if !defined(_FPDFAPI_MINI_) || defined(_FXCORE_FEATURE_ALL_)
 extern FX_LPCSTR FCS_GetAltStr(FX_WCHAR);
 CFX_ByteString CharFromUnicodeAlt(FX_WCHAR unicode, int destcp, FX_LPCSTR defchar)
 {
@@ -128,8 +127,6 @@ void CTextPage::ProcessObject(CPDF_PageObject* pObject)
             segment_left = char_left;
             segment = "";
         }
-        CFX_WideString wCh = pText->GetFont()->UnicodeFromCharCode(charcode);
-        FX_DWORD ch = wCh.GetLength() > 0 ? wCh.GetAt(0) : charcode;
         if (space_count > 1) {
             pBaseLine = InsertTextBox(pBaseLine, baseline, leftx + segment_left, leftx + segment_right,
                                       topy, bottomy, spacew, fontsize_v, segment, pFont);
@@ -186,7 +183,12 @@ CTextBaseLine* CTextPage::InsertTextBox(CTextBaseLine* pBaseLine, FX_FLOAT basey
     while (offset < len) {
         FX_DWORD ch = pFont->GetNextChar(pStr, offset);
         CFX_WideString unicode_str = pFont->UnicodeFromCharCode(ch);
-        text += unicode_str;
+        if (unicode_str.IsEmpty()) {
+            text += (FX_WCHAR)ch;
+        }
+        else {
+            text += unicode_str;
+        }
     }
     pBaseLine->InsertTextBox(leftx, rightx, topy, bottomy, spacew, fontsize_v, text);
     return pBaseLine;
@@ -381,7 +383,6 @@ void NormalizeString(CFX_WideString& str)
                     i = j;
                     j = n;
                     for(; n <= i; n += 3) {
-                        int ret = order.GetAt(n);
                         int start = order.GetAt(n - 2);
                         int count1 = order.GetAt(n - 1);
                         int end = start + count1 ;
@@ -561,7 +562,6 @@ FX_BOOL CTextBaseLine::CanMerge(CTextBaseLine* pOther)
     FX_FLOAT dy = (FX_FLOAT)FXSYS_fabs(m_BaseLine - pOther->m_BaseLine);
     for (int i = 0; i < m_TextList.GetSize(); i ++) {
         CTextBox* pText = (CTextBox*)m_TextList.GetAt(i);
-        FX_FLOAT width = pText->m_Right - pText->m_Left;
         for (int j = 0; j < pOther->m_TextList.GetSize(); j ++) {
             CTextBox* pOtherText = (CTextBox*)pOther->m_TextList.GetAt(j);
             FX_FLOAT inter_left, inter_right;
@@ -775,7 +775,6 @@ void PDF_GetPageText(CFX_ByteStringArray& lines, CPDF_Document* pDoc, CPDF_Dicti
         lines.Add(str);
     }
 }
-#endif
 extern void _PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, CPDF_PageObjects* pPage, FX_BOOL bUseLF,
                                        CFX_PtrArray* pObjArray);
 void PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, CPDF_Document* pDoc, CPDF_Dictionary* pPage, FX_DWORD flags)