OLD | NEW |
| (Empty) |
1 // Copyright 2014 PDFium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #ifndef _BC_PDF417_H_ | |
8 #define _BC_PDF417_H_ | |
9 class CBC_Compaction; | |
10 class CBC_BarcodeRow; | |
11 class CBC_BarcodeMatrix; | |
12 class CBC_PDF417; | |
13 class CBC_PDF417 : public CFX_Object | |
14 { | |
15 public: | |
16 CBC_PDF417(); | |
17 CBC_PDF417(FX_BOOL compact); | |
18 virtual ~CBC_PDF417(); | |
19 CBC_BarcodeMatrix* getBarcodeMatrix(); | |
20 void generateBarcodeLogic(CFX_WideString msg, FX_INT32 errorCorrectionLevel,
FX_INT32 &e); | |
21 void setDimensions(FX_INT32 maxCols, FX_INT32 minCols, FX_INT32 maxRows, FX_
INT32 minRows); | |
22 void setCompaction(Compaction compaction); | |
23 void setCompact(FX_BOOL compact); | |
24 private: | |
25 static FX_INT32 START_PATTERN; | |
26 static FX_INT32 STOP_PATTERN; | |
27 static FX_INT32 CODEWORD_TABLE[][1000]; | |
28 static FX_FLOAT PREFERRED_RATIO; | |
29 static FX_FLOAT DEFAULT_MODULE_WIDTH; | |
30 static FX_FLOAT HEIGHT; | |
31 CBC_BarcodeMatrix* m_barcodeMatrix; | |
32 FX_BOOL m_compact; | |
33 Compaction m_compaction; | |
34 FX_INT32 m_minCols; | |
35 FX_INT32 m_maxCols; | |
36 FX_INT32 m_maxRows; | |
37 FX_INT32 m_minRows; | |
38 private: | |
39 static FX_INT32 calculateNumberOfRows(FX_INT32 m, FX_INT32 k, FX_INT32 c); | |
40 static FX_INT32 getNumberOfPadCodewords(FX_INT32 m, FX_INT32 k, FX_INT32 c,
FX_INT32 r); | |
41 static void encodeChar(FX_INT32 pattern, FX_INT32 len, CBC_BarcodeRow* logic
); | |
42 void encodeLowLevel(CFX_WideString fullCodewords, FX_INT32 c, FX_INT32 r, FX
_INT32 errorCorrectionLevel, CBC_BarcodeMatrix* logic); | |
43 CFX_Int32Array* determineDimensions(FX_INT32 sourceCodeWords, FX_INT32 error
CorrectionCodeWords, FX_INT32 &e); | |
44 }; | |
45 #endif | |
OLD | NEW |