| 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 2006 Jeremias Maerki in part, and ZXing Authors in part | 8  * Copyright 2006 Jeremias Maerki in part, and ZXing Authors in part | 
| 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 "xfa/src/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h" | 23 #include "xfa/src/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h" | 
| 24 | 24 | 
| 25 #include "third_party/bigint/BigIntegerLibrary.hh" | 25 #include "third_party/bigint/BigIntegerLibrary.hh" | 
| 26 #include "xfa/src/fxbarcode/BC_UtilCodingConvert.h" | 26 #include "xfa/src/fxbarcode/BC_UtilCodingConvert.h" | 
| 27 #include "xfa/src/fxbarcode/barcode.h" |  | 
| 28 #include "xfa/src/fxbarcode/pdf417/BC_PDF417Compaction.h" | 27 #include "xfa/src/fxbarcode/pdf417/BC_PDF417Compaction.h" | 
|  | 28 #include "xfa/src/fxbarcode/utils.h" | 
| 29 | 29 | 
| 30 #define SUBMODE_ALPHA 0 | 30 #define SUBMODE_ALPHA 0 | 
| 31 #define SUBMODE_LOWER 1 | 31 #define SUBMODE_LOWER 1 | 
| 32 #define SUBMODE_MIXED 2 | 32 #define SUBMODE_MIXED 2 | 
|  | 33 | 
| 33 int32_t CBC_PDF417HighLevelEncoder::TEXT_COMPACTION = 0; | 34 int32_t CBC_PDF417HighLevelEncoder::TEXT_COMPACTION = 0; | 
| 34 int32_t CBC_PDF417HighLevelEncoder::BYTE_COMPACTION = 1; | 35 int32_t CBC_PDF417HighLevelEncoder::BYTE_COMPACTION = 1; | 
| 35 int32_t CBC_PDF417HighLevelEncoder::NUMERIC_COMPACTION = 2; | 36 int32_t CBC_PDF417HighLevelEncoder::NUMERIC_COMPACTION = 2; | 
| 36 int32_t CBC_PDF417HighLevelEncoder::SUBMODE_PUNCTUATION = 3; | 37 int32_t CBC_PDF417HighLevelEncoder::SUBMODE_PUNCTUATION = 3; | 
| 37 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_TEXT = 900; | 38 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_TEXT = 900; | 
| 38 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_BYTE_PADDED = 901; | 39 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_BYTE_PADDED = 901; | 
| 39 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_NUMERIC = 902; | 40 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_NUMERIC = 902; | 
| 40 int32_t CBC_PDF417HighLevelEncoder::SHIFT_TO_BYTE = 913; | 41 int32_t CBC_PDF417HighLevelEncoder::SHIFT_TO_BYTE = 913; | 
| 41 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_BYTE = 924; | 42 int32_t CBC_PDF417HighLevelEncoder::LATCH_TO_BYTE = 924; | 
| 42 uint8_t CBC_PDF417HighLevelEncoder::TEXT_MIXED_RAW[] = { | 43 uint8_t CBC_PDF417HighLevelEncoder::TEXT_MIXED_RAW[] = { | 
| 43     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 38, 13, 9, 44, 58, | 44     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 38, 13, 9, 44, 58, | 
| 44     35, 45, 46, 36, 47, 43, 37, 42, 61, 94, 0,  32, 0, 0,  0}; | 45     35, 45, 46, 36, 47, 43, 37, 42, 61, 94, 0,  32, 0, 0,  0}; | 
| 45 uint8_t CBC_PDF417HighLevelEncoder::TEXT_PUNCTUATION_RAW[] = { | 46 uint8_t CBC_PDF417HighLevelEncoder::TEXT_PUNCTUATION_RAW[] = { | 
| 46     59, 60, 62, 64, 91, 92, 93,  95, 96, 126, 33, 13,  9,   44, 58, | 47     59, 60, 62, 64, 91, 92, 93,  95, 96, 126, 33, 13,  9,   44, 58, | 
| 47     10, 45, 46, 36, 47, 34, 124, 42, 40, 41,  63, 123, 125, 39, 0}; | 48     10, 45, 46, 36, 47, 34, 124, 42, 40, 41,  63, 123, 125, 39, 0}; | 
| 48 int32_t CBC_PDF417HighLevelEncoder::MIXED[128] = {0}; | 49 int32_t CBC_PDF417HighLevelEncoder::MIXED[128] = {0}; | 
| 49 int32_t CBC_PDF417HighLevelEncoder::PUNCTUATION[128] = {0}; | 50 int32_t CBC_PDF417HighLevelEncoder::PUNCTUATION[128] = {0}; | 
|  | 51 | 
| 50 void CBC_PDF417HighLevelEncoder::Initialize() { | 52 void CBC_PDF417HighLevelEncoder::Initialize() { | 
| 51   Inverse(); | 53   Inverse(); | 
| 52 } | 54 } | 
| 53 void CBC_PDF417HighLevelEncoder::Finalize() {} | 55 void CBC_PDF417HighLevelEncoder::Finalize() {} | 
| 54 CFX_WideString CBC_PDF417HighLevelEncoder::encodeHighLevel( | 56 CFX_WideString CBC_PDF417HighLevelEncoder::encodeHighLevel( | 
| 55     CFX_WideString wideMsg, | 57     CFX_WideString wideMsg, | 
| 56     Compaction compaction, | 58     Compaction compaction, | 
| 57     int32_t& e) { | 59     int32_t& e) { | 
| 58   CFX_ByteString bytes; | 60   CFX_ByteString bytes; | 
| 59   CBC_UtilCodingConvert::UnicodeToUTF8(wideMsg, bytes); | 61   CBC_UtilCodingConvert::UnicodeToUTF8(wideMsg, bytes); | 
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 419     } | 421     } | 
| 420     ch = msg.GetAt(idx); | 422     ch = msg.GetAt(idx); | 
| 421     if (bytes->GetAt(idx) == 63 && ch != '?') { | 423     if (bytes->GetAt(idx) == 63 && ch != '?') { | 
| 422       e = BCExceptionNonEncodableCharacterDetected; | 424       e = BCExceptionNonEncodableCharacterDetected; | 
| 423       return -1; | 425       return -1; | 
| 424     } | 426     } | 
| 425     idx++; | 427     idx++; | 
| 426   } | 428   } | 
| 427   return idx - startpos; | 429   return idx - startpos; | 
| 428 } | 430 } | 
| OLD | NEW | 
|---|