Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: core/src/fpdfdoc/doc_ap.cpp

Issue 1288603006: Merge to XFA: Fix more sign comparison errors. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/include/fpdfapi/fpdf_resource.h ('k') | fpdfsdk/src/fpdftext_embeddertest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/fpdfdoc/fpdf_doc.h" 7 #include "../../include/fpdfdoc/fpdf_doc.h"
8 #include "../../include/fpdfdoc/fpdf_vt.h" 8 #include "../../include/fpdfdoc/fpdf_vt.h"
9 #include "pdf_vt.h" 9 #include "pdf_vt.h"
10 #include "../../include/fpdfdoc/fpdf_ap.h" 10 #include "../../include/fpdfdoc/fpdf_ap.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 126 }
127 CPVT_Provider::CPVT_Provider(IPVT_FontMap* pFontMap) : m_pFontMap(pFontMap) { 127 CPVT_Provider::CPVT_Provider(IPVT_FontMap* pFontMap) : m_pFontMap(pFontMap) {
128 ASSERT(m_pFontMap != NULL); 128 ASSERT(m_pFontMap != NULL);
129 } 129 }
130 CPVT_Provider::~CPVT_Provider() {} 130 CPVT_Provider::~CPVT_Provider() {}
131 int32_t CPVT_Provider::GetCharWidth(int32_t nFontIndex, 131 int32_t CPVT_Provider::GetCharWidth(int32_t nFontIndex,
132 FX_WORD word, 132 FX_WORD word,
133 int32_t nWordStyle) { 133 int32_t nWordStyle) {
134 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) { 134 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) {
135 FX_DWORD charcode = pPDFFont->CharCodeFromUnicode(word); 135 FX_DWORD charcode = pPDFFont->CharCodeFromUnicode(word);
136 if (charcode != -1) { 136 if (charcode != CPDF_Font::kInvalidCharCode) {
137 return pPDFFont->GetCharWidthF(charcode); 137 return pPDFFont->GetCharWidthF(charcode);
138 } 138 }
139 } 139 }
140 return 0; 140 return 0;
141 } 141 }
142 int32_t CPVT_Provider::GetTypeAscent(int32_t nFontIndex) { 142 int32_t CPVT_Provider::GetTypeAscent(int32_t nFontIndex) {
143 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) { 143 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) {
144 return pPDFFont->GetTypeAscent(); 144 return pPDFFont->GetTypeAscent();
145 } 145 }
146 return 0; 146 return 0;
147 } 147 }
148 int32_t CPVT_Provider::GetTypeDescent(int32_t nFontIndex) { 148 int32_t CPVT_Provider::GetTypeDescent(int32_t nFontIndex) {
149 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) { 149 if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) {
150 return pPDFFont->GetTypeDescent(); 150 return pPDFFont->GetTypeDescent();
151 } 151 }
152 return 0; 152 return 0;
153 } 153 }
154 int32_t CPVT_Provider::GetWordFontIndex(FX_WORD word, 154 int32_t CPVT_Provider::GetWordFontIndex(FX_WORD word,
155 int32_t charset, 155 int32_t charset,
156 int32_t nFontIndex) { 156 int32_t nFontIndex) {
157 if (CPDF_Font* pDefFont = m_pFontMap->GetPDFFont(0)) { 157 if (CPDF_Font* pDefFont = m_pFontMap->GetPDFFont(0)) {
158 if (pDefFont->CharCodeFromUnicode(word) != -1) { 158 if (pDefFont->CharCodeFromUnicode(word) != CPDF_Font::kInvalidCharCode) {
159 return 0; 159 return 0;
160 } 160 }
161 } 161 }
162 if (CPDF_Font* pSysFont = m_pFontMap->GetPDFFont(1)) 162 if (CPDF_Font* pSysFont = m_pFontMap->GetPDFFont(1)) {
163 if (pSysFont->CharCodeFromUnicode(word) != -1) { 163 if (pSysFont->CharCodeFromUnicode(word) != CPDF_Font::kInvalidCharCode) {
164 return 1; 164 return 1;
165 } 165 }
166 }
166 return -1; 167 return -1;
167 } 168 }
168 FX_BOOL CPVT_Provider::IsLatinWord(FX_WORD word) { 169 FX_BOOL CPVT_Provider::IsLatinWord(FX_WORD word) {
169 if ((word >= 0x61 && word <= 0x7A) || (word >= 0x41 && word <= 0x5A) || 170 if ((word >= 0x61 && word <= 0x7A) || (word >= 0x41 && word <= 0x5A) ||
170 word == 0x2D || word == 0x27) { 171 word == 0x2D || word == 0x27) {
171 return TRUE; 172 return TRUE;
172 } 173 }
173 return FALSE; 174 return FALSE;
174 } 175 }
175 int32_t CPVT_Provider::GetDefaultFontIndex() { 176 int32_t CPVT_Provider::GetDefaultFontIndex() {
176 return 0; 177 return 0;
177 } 178 }
179
178 static CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap, 180 static CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap,
179 int32_t nFontIndex, 181 int32_t nFontIndex,
180 FX_WORD Word, 182 FX_WORD Word,
181 FX_WORD SubWord) { 183 FX_WORD SubWord) {
182 CFX_ByteString sWord; 184 CFX_ByteString sWord;
183 if (SubWord > 0) { 185 if (SubWord > 0) {
184 sWord.Format("%c", SubWord); 186 sWord.Format("%c", SubWord);
185 } else { 187 return sWord;
186 if (pFontMap) { 188 }
187 if (CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex)) { 189
188 if (pPDFFont->GetBaseFont().Compare("Symbol") == 0 || 190 if (!pFontMap)
189 pPDFFont->GetBaseFont().Compare("ZapfDingbats") == 0) { 191 return sWord;
190 sWord.Format("%c", Word); 192
191 } else { 193 if (CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex)) {
192 FX_DWORD dwCharCode = pPDFFont->CharCodeFromUnicode(Word); 194 if (pPDFFont->GetBaseFont().Compare("Symbol") == 0 ||
193 if (dwCharCode != -1) { 195 pPDFFont->GetBaseFont().Compare("ZapfDingbats") == 0) {
194 pPDFFont->AppendChar(sWord, dwCharCode); 196 sWord.Format("%c", Word);
195 } 197 } else {
196 } 198 FX_DWORD dwCharCode = pPDFFont->CharCodeFromUnicode(Word);
199 if (dwCharCode != CPDF_Font::kInvalidCharCode) {
200 pPDFFont->AppendChar(sWord, dwCharCode);
197 } 201 }
198 } 202 }
199 } 203 }
200 return sWord; 204 return sWord;
201 } 205 }
206
202 static CFX_ByteString GetWordRenderString(const CFX_ByteString& strWords) { 207 static CFX_ByteString GetWordRenderString(const CFX_ByteString& strWords) {
203 if (strWords.GetLength() > 0) { 208 if (strWords.GetLength() > 0) {
204 return PDF_EncodeString(strWords) + " Tj\n"; 209 return PDF_EncodeString(strWords) + " Tj\n";
205 } 210 }
206 return ""; 211 return "";
207 } 212 }
208 static CFX_ByteString GetFontSetString(IPVT_FontMap* pFontMap, 213 static CFX_ByteString GetFontSetString(IPVT_FontMap* pFontMap,
209 int32_t nFontIndex, 214 int32_t nFontIndex,
210 FX_FLOAT fFontSize) { 215 FX_FLOAT fFontSize) {
211 CFX_ByteTextBuf sRet; 216 CFX_ByteTextBuf sRet;
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 << "\n"; 931 << "\n";
927 break; 932 break;
928 case CT_CMYK: 933 case CT_CMYK:
929 sColorStream << color.fColor1 << " " << color.fColor2 << " " 934 sColorStream << color.fColor1 << " " << color.fColor2 << " "
930 << color.fColor3 << " " << color.fColor4 << " " 935 << color.fColor3 << " " << color.fColor4 << " "
931 << (bFillOrStroke ? "k" : "K") << "\n"; 936 << (bFillOrStroke ? "k" : "K") << "\n";
932 break; 937 break;
933 } 938 }
934 return sColorStream.GetByteString(); 939 return sColorStream.GetByteString();
935 } 940 }
OLDNEW
« no previous file with comments | « core/include/fpdfapi/fpdf_resource.h ('k') | fpdfsdk/src/fpdftext_embeddertest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698