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 // Original code is licensed as follows: | 6 // Original code is licensed as follows: |
7 /* | 7 /* |
8 * Copyright 2011 ZXing authors | 8 * Copyright 2011 ZXing authors |
9 * | 9 * |
10 * Licensed under the Apache License, Version 2.0 (the "License"); | 10 * Licensed under the Apache License, Version 2.0 (the "License"); |
11 * you may not use this file except in compliance with the License. | 11 * you may not use this file except in compliance with the License. |
12 * You may obtain a copy of the License at | 12 * You may obtain a copy of the License at |
13 * | 13 * |
14 * http://www.apache.org/licenses/LICENSE-2.0 | 14 * http://www.apache.org/licenses/LICENSE-2.0 |
15 * | 15 * |
16 * Unless required by applicable law or agreed to in writing, software | 16 * Unless required by applicable law or agreed to in writing, software |
17 * distributed under the License is distributed on an "AS IS" BASIS, | 17 * distributed under the License is distributed on an "AS IS" BASIS, |
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
19 * See the License for the specific language governing permissions and | 19 * See the License for the specific language governing permissions and |
20 * limitations under the License. | 20 * limitations under the License. |
21 */ | 21 */ |
22 | 22 |
| 23 #include "../../../../third_party/base/nonstd_unique_ptr.h" |
23 #include "../barcode.h" | 24 #include "../barcode.h" |
24 #include "../BC_Writer.h" | 25 #include "../BC_Writer.h" |
25 #include "../common/BC_CommonBitMatrix.h" | 26 #include "../common/BC_CommonBitMatrix.h" |
26 #include "BC_OneDimWriter.h" | 27 #include "BC_OneDimWriter.h" |
27 CBC_OneDimWriter::CBC_OneDimWriter() { | 28 CBC_OneDimWriter::CBC_OneDimWriter() { |
28 m_locTextLoc = BC_TEXT_LOC_BELOWEMBED; | 29 m_locTextLoc = BC_TEXT_LOC_BELOWEMBED; |
29 m_bPrintChecksum = TRUE; | 30 m_bPrintChecksum = TRUE; |
30 m_iDataLenth = 0; | 31 m_iDataLenth = 0; |
31 m_bCalcChecksum = FALSE; | 32 m_bCalcChecksum = FALSE; |
32 m_pFont = NULL; | 33 m_pFont = NULL; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 color ^= 1; | 123 color ^= 1; |
123 } | 124 } |
124 return numAdded; | 125 return numAdded; |
125 } | 126 } |
126 void CBC_OneDimWriter::CalcTextInfo(const CFX_ByteString& text, | 127 void CBC_OneDimWriter::CalcTextInfo(const CFX_ByteString& text, |
127 FXTEXT_CHARPOS* charPos, | 128 FXTEXT_CHARPOS* charPos, |
128 CFX_Font* cFont, | 129 CFX_Font* cFont, |
129 FX_FLOAT geWidth, | 130 FX_FLOAT geWidth, |
130 int32_t fontSize, | 131 int32_t fontSize, |
131 FX_FLOAT& charsLen) { | 132 FX_FLOAT& charsLen) { |
132 #ifdef FXFM_ENCODING_NONE | 133 nonstd::unique_ptr<CFX_UnicodeEncodingEx> encoding( |
133 IFX_FontEncodingEx* encoding = FX_CreateFontEncodingEx(cFont); | 134 FX_CreateFontEncodingEx(cFont)); |
134 #else | 135 |
135 IFX_FontEncoding* encoding = FXGE_CreateUnicodeEncoding(cFont); | |
136 #endif | |
137 int32_t length = text.GetLength(); | 136 int32_t length = text.GetLength(); |
138 FX_DWORD* pCharCode = FX_Alloc(FX_DWORD, text.GetLength()); | 137 FX_DWORD* pCharCode = FX_Alloc(FX_DWORD, text.GetLength()); |
139 FX_FLOAT charWidth = 0; | 138 FX_FLOAT charWidth = 0; |
140 for (int32_t j = 0; j < text.GetLength(); j++) { | 139 for (int32_t j = 0; j < text.GetLength(); j++) { |
141 pCharCode[j] = encoding->CharCodeFromUnicode(text[j]); | 140 pCharCode[j] = encoding->CharCodeFromUnicode(text[j]); |
142 int32_t glyp_code = encoding->GlyphFromCharCode(pCharCode[j]); | 141 int32_t glyp_code = encoding->GlyphFromCharCode(pCharCode[j]); |
143 int32_t glyp_value = cFont->GetGlyphWidth(glyp_code); | 142 int32_t glyp_value = cFont->GetGlyphWidth(glyp_code); |
144 FX_FLOAT temp = (FX_FLOAT)((glyp_value)*fontSize / 1000.0); | 143 FX_FLOAT temp = (FX_FLOAT)((glyp_value)*fontSize / 1000.0); |
145 charWidth += temp; | 144 charWidth += temp; |
146 } | 145 } |
(...skipping 20 matching lines...) Expand all Loading... |
167 charPos[i].m_OriginY = penY + top; | 166 charPos[i].m_OriginY = penY + top; |
168 charPos[i].m_GlyphIndex = encoding->GlyphFromCharCode(pCharCode[i]); | 167 charPos[i].m_GlyphIndex = encoding->GlyphFromCharCode(pCharCode[i]); |
169 charPos[i].m_FontCharWidth = cFont->GetGlyphWidth(charPos[i].m_GlyphIndex); | 168 charPos[i].m_FontCharWidth = cFont->GetGlyphWidth(charPos[i].m_GlyphIndex); |
170 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ | 169 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ |
171 charPos[i].m_ExtGID = charPos[i].m_GlyphIndex; | 170 charPos[i].m_ExtGID = charPos[i].m_GlyphIndex; |
172 #endif | 171 #endif |
173 penX += | 172 penX += |
174 (FX_FLOAT)(charPos[i].m_FontCharWidth) * (FX_FLOAT)fontSize / 1000.0f; | 173 (FX_FLOAT)(charPos[i].m_FontCharWidth) * (FX_FLOAT)fontSize / 1000.0f; |
175 } | 174 } |
176 FX_Free(pCharCode); | 175 FX_Free(pCharCode); |
177 delete encoding; | |
178 encoding = NULL; | |
179 } | 176 } |
180 void CBC_OneDimWriter::ShowDeviceChars(CFX_RenderDevice* device, | 177 void CBC_OneDimWriter::ShowDeviceChars(CFX_RenderDevice* device, |
181 const CFX_Matrix* matrix, | 178 const CFX_Matrix* matrix, |
182 const CFX_ByteString str, | 179 const CFX_ByteString str, |
183 FX_FLOAT geWidth, | 180 FX_FLOAT geWidth, |
184 FXTEXT_CHARPOS* pCharPos, | 181 FXTEXT_CHARPOS* pCharPos, |
185 FX_FLOAT locX, | 182 FX_FLOAT locX, |
186 FX_FLOAT locY, | 183 FX_FLOAT locY, |
187 int32_t barWidth) { | 184 int32_t barWidth) { |
188 int32_t iFontSize = (int32_t)fabs(m_fFontSize); | 185 int32_t iFontSize = (int32_t)fabs(m_fFontSize); |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 if (outputX + m_multiple > outputWidth && outputWidth - outputX > 0) { | 432 if (outputX + m_multiple > outputWidth && outputWidth - outputX > 0) { |
436 m_output->SetRegion(outputX, 0, outputWidth - outputX, outputHeight, e); | 433 m_output->SetRegion(outputX, 0, outputWidth - outputX, outputHeight, e); |
437 break; | 434 break; |
438 } | 435 } |
439 m_output->SetRegion(outputX, 0, m_multiple, outputHeight, e); | 436 m_output->SetRegion(outputX, 0, m_multiple, outputHeight, e); |
440 BC_EXCEPTION_CHECK_ReturnVoid(e); | 437 BC_EXCEPTION_CHECK_ReturnVoid(e); |
441 } | 438 } |
442 outputX += m_multiple; | 439 outputX += m_multiple; |
443 } | 440 } |
444 } | 441 } |
OLD | NEW |