| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../include/fxedit/fxet_stub.h" | 7 #include "../../include/fxedit/fxet_stub.h" |
| 8 #include "../../include/fxedit/fx_edit.h" | 8 #include "../../include/fxedit/fx_edit.h" |
| 9 #include "../../include/fxedit/fxet_edit.h" | 9 #include "../../include/fxedit/fxet_edit.h" |
| 10 | 10 |
| 11 CFX_ByteString GetPDFWordString(IFX_Edit_FontMap * pFontMap, FX_INT32 nFontIndex
, FX_WORD Word, FX_WORD SubWord) | 11 CFX_ByteString GetPDFWordString(IFX_Edit_FontMap * pFontMap, int32_t nFontIndex,
FX_WORD Word, FX_WORD SubWord) |
| 12 { | 12 { |
| 13 ASSERT (pFontMap != NULL); | 13 ASSERT (pFontMap != NULL); |
| 14 | 14 |
| 15 CFX_ByteString sWord; | 15 CFX_ByteString sWord; |
| 16 | 16 |
| 17 if (CPDF_Font * pPDFFont = pFontMap->GetPDFFont(nFontIndex)) | 17 if (CPDF_Font * pPDFFont = pFontMap->GetPDFFont(nFontIndex)) |
| 18 { | 18 { |
| 19 if (SubWord > 0) | 19 if (SubWord > 0) |
| 20 { | 20 { |
| 21 Word = SubWord; | 21 Word = SubWord; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 43 } | 43 } |
| 44 | 44 |
| 45 static CFX_ByteString GetWordRenderString(const CFX_ByteString & strWords) | 45 static CFX_ByteString GetWordRenderString(const CFX_ByteString & strWords) |
| 46 { | 46 { |
| 47 if (strWords.GetLength() > 0) | 47 if (strWords.GetLength() > 0) |
| 48 return PDF_EncodeString(strWords) + " Tj\n"; | 48 return PDF_EncodeString(strWords) + " Tj\n"; |
| 49 | 49 |
| 50 return ""; | 50 return ""; |
| 51 } | 51 } |
| 52 | 52 |
| 53 static CFX_ByteString GetFontSetString(IFX_Edit_FontMap * pFontMap, FX_INT32 nFo
ntIndex, FX_FLOAT fFontSize) | 53 static CFX_ByteString GetFontSetString(IFX_Edit_FontMap * pFontMap, int32_t nFon
tIndex, FX_FLOAT fFontSize) |
| 54 { | 54 { |
| 55 CFX_ByteTextBuf sRet; | 55 CFX_ByteTextBuf sRet; |
| 56 | 56 |
| 57 if (pFontMap) | 57 if (pFontMap) |
| 58 { | 58 { |
| 59 CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex
); | 59 CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex
); |
| 60 | 60 |
| 61 if (sFontAlias.GetLength() > 0 && fFontSize > 0 ) | 61 if (sFontAlias.GetLength() > 0 && fFontSize > 0 ) |
| 62 sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n"
; | 62 sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n"
; |
| 63 } | 63 } |
| 64 | 64 |
| 65 return sRet.GetByteString(); | 65 return sRet.GetByteString(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 CFX_ByteString IFX_Edit::GetEditAppearanceStream(IFX_Edit* pEdit, const CPDF_Poi
nt & ptOffset, | 68 CFX_ByteString IFX_Edit::GetEditAppearanceStream(IFX_Edit* pEdit, const CPDF_Poi
nt & ptOffset, |
| 69
const CPVT_WordRange * pRange /* = NULL*/, FX_BOOL bContinuous/
* = TRUE*/, FX_WORD SubWord/* = 0*/) | 69
const CPVT_WordRange * pRange /* = NULL*/, FX_BOOL bContinuous/
* = TRUE*/, FX_WORD SubWord/* = 0*/) |
| 70 { | 70 { |
| 71 CFX_ByteTextBuf sEditStream, sWords; | 71 CFX_ByteTextBuf sEditStream, sWords; |
| 72 | 72 |
| 73 CPDF_Point ptOld(0.0f,0.0f),ptNew(0.0f,0.0f); | 73 CPDF_Point ptOld(0.0f,0.0f),ptNew(0.0f,0.0f); |
| 74 » FX_INT32 nCurFontIndex = -1; | 74 » int32_t nCurFontIndex = -1; |
| 75 | 75 |
| 76 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) | 76 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) |
| 77 { | 77 { |
| 78 if (pRange) | 78 if (pRange) |
| 79 pIterator->SetAt(pRange->BeginPos); | 79 pIterator->SetAt(pRange->BeginPos); |
| 80 else | 80 else |
| 81 pIterator->SetAt(0); | 81 pIterator->SetAt(0); |
| 82 | 82 |
| 83 CPVT_WordPlace oldplace; | 83 CPVT_WordPlace oldplace; |
| 84 | 84 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 if (sWords.GetSize() > 0) | 164 if (sWords.GetSize() > 0) |
| 165 { | 165 { |
| 166 sEditStream << GetWordRenderString(sWords.GetByteString(
)); | 166 sEditStream << GetWordRenderString(sWords.GetByteString(
)); |
| 167 sWords.Clear(); | 167 sWords.Clear(); |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 | 170 |
| 171 CFX_ByteTextBuf sAppStream; | 171 CFX_ByteTextBuf sAppStream; |
| 172 if (sEditStream.GetSize() > 0) | 172 if (sEditStream.GetSize() > 0) |
| 173 { | 173 { |
| 174 » » FX_INT32 nHorzScale = pEdit->GetHorzScale(); | 174 » » int32_t nHorzScale = pEdit->GetHorzScale(); |
| 175 if (nHorzScale != 100) | 175 if (nHorzScale != 100) |
| 176 { | 176 { |
| 177 sAppStream << nHorzScale << " Tz\n"; | 177 sAppStream << nHorzScale << " Tz\n"; |
| 178 } | 178 } |
| 179 | 179 |
| 180 FX_FLOAT fCharSpace = pEdit->GetCharSpace(); | 180 FX_FLOAT fCharSpace = pEdit->GetCharSpace(); |
| 181 if (!FX_EDIT_IsFloatZero(fCharSpace)) | 181 if (!FX_EDIT_IsFloatZero(fCharSpace)) |
| 182 { | 182 { |
| 183 sAppStream << fCharSpace << " Tc\n"; | 183 sAppStream << fCharSpace << " Tc\n"; |
| 184 } | 184 } |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 sRet << word.ptWord.x + ptOffset.x << "
" << line.ptLine.y + line.fLineDescent | 216 sRet << word.ptWord.x + ptOffset.x << "
" << line.ptLine.y + line.fLineDescent |
| 217 << " " << word.fWidth << " " <<
line.fLineAscent - line.fLineDescent << " re\nf\n"; | 217 << " " << word.fWidth << " " <<
line.fLineAscent - line.fLineDescent << " re\nf\n"; |
| 218 } | 218 } |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 } | 221 } |
| 222 | 222 |
| 223 return sRet.GetByteString(); | 223 return sRet.GetByteString(); |
| 224 } | 224 } |
| 225 | 225 |
| OLD | NEW |