Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
BC_TextEncoder.cpp
Go to the documentation of this file.
1
// Copyright 2014 The PDFium Authors
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
// Original code is licensed as follows:
7
/*
8
* Copyright 2006-2007 Jeremias Maerki.
9
*
10
* Licensed under the Apache License, Version 2.0 (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
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing, software
17
* distributed under the License is distributed on an "AS IS" BASIS,
18
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
* See the License for the specific language governing permissions and
20
* limitations under the License.
21
*/
22
23
#
include
"fxbarcode/datamatrix/BC_TextEncoder.h"
24
25
#
include
"core/fxcrt/fx_extension.h"
26
#
include
"fxbarcode/common/BC_CommonBitMatrix.h"
27
#
include
"fxbarcode/datamatrix/BC_C40Encoder.h"
28
#
include
"fxbarcode/datamatrix/BC_Encoder.h"
29
#
include
"fxbarcode/datamatrix/BC_EncoderContext.h"
30
#
include
"fxbarcode/datamatrix/BC_HighLevelEncoder.h"
31
#
include
"fxbarcode/datamatrix/BC_SymbolInfo.h"
32
33
CBC_TextEncoder::
CBC_TextEncoder
() =
default
;
34
35
CBC_TextEncoder::~
CBC_TextEncoder
() =
default
;
36
37
CBC_HighLevelEncoder
::
Encoding
CBC_TextEncoder::
GetEncodingMode
() {
38
return
CBC_HighLevelEncoder
::
Encoding
::
TEXT
;
39
}
40
41
int32_t CBC_TextEncoder::
EncodeChar
(
wchar_t
c, WideString* sb) {
42
if
(c ==
' '
) {
43
*sb
+=
(
wchar_t
)
'\3'
;
44
return
1;
45
}
46
if
(
FXSYS_IsDecimalDigit
(
c
)
) {
47
*sb
+=
(
wchar_t
)(c - 48 + 4);
48
return
1;
49
}
50
if
(
FXSYS_IsLowerASCII
(
c
)
) {
51
*sb
+=
(
wchar_t
)(c - 97 + 14);
52
return
1;
53
}
54
if
(c <= 0x1f) {
55
*sb
+=
(
wchar_t
)
'\0'
;
56
*sb
+=
c;
57
return
2;
58
}
59
if
(c >=
'!'
&& c <=
'/'
) {
60
*sb
+=
(
wchar_t
)
'\1'
;
61
*sb
+=
(
wchar_t
)(c - 33);
62
return
2;
63
}
64
if
(c >=
':'
&& c <=
'@'
) {
65
*sb
+=
(
wchar_t
)
'\1'
;
66
*sb
+=
(
wchar_t
)(c - 58 + 15);
67
return
2;
68
}
69
if
(c >=
'['
&& c <=
'_'
) {
70
*sb
+=
(
wchar_t
)
'\1'
;
71
*sb
+=
(
wchar_t
)(c - 91 + 22);
72
return
2;
73
}
74
if
(c == 0x0060) {
75
*sb
+=
(
wchar_t
)
'\2'
;
76
*sb
+=
(
wchar_t
)(c - 96);
77
return
2;
78
}
79
if
(
FXSYS_IsUpperASCII
(
c
)
) {
80
*sb
+=
(
wchar_t
)
'\2'
;
81
*sb
+=
(
wchar_t
)(c - 65 + 1);
82
return
2;
83
}
84
if
(c >=
'{'
&& c <= 0x007f) {
85
*sb
+=
(
wchar_t
)
'\2'
;
86
*sb
+=
(
wchar_t
)(c - 123 + 27);
87
return
2;
88
}
89
if
(c < 0x0080)
90
return
0;
91
92
*sb
+=
(
wchar_t
)
'\1'
;
93
*sb
+=
(
wchar_t
)0x001e;
94
int32_t encode_result =
EncodeChar
(
c - 128
,
sb
)
;
95
return
encode_result > 0 ? encode_result + 2 : 0;
96
}
CBC_HighLevelEncoder
Definition
BC_HighLevelEncoder.h:12
CBC_HighLevelEncoder::Encoding
Encoding
Definition
BC_HighLevelEncoder.h:14
CBC_HighLevelEncoder::Encoding::TEXT
@ TEXT
CBC_TextEncoder::~CBC_TextEncoder
~CBC_TextEncoder() override
CBC_TextEncoder::CBC_TextEncoder
CBC_TextEncoder()
CBC_TextEncoder::EncodeChar
int32_t EncodeChar(wchar_t c, WideString *sb) override
Definition
BC_TextEncoder.cpp:41
CBC_TextEncoder::GetEncodingMode
CBC_HighLevelEncoder::Encoding GetEncodingMode() override
Definition
BC_TextEncoder.cpp:37
fxcrt::WideString::operator+=
WideString & operator+=(wchar_t ch)
Definition
widestring.cpp:519
FXSYS_IsDecimalDigit
bool FXSYS_IsDecimalDigit(wchar_t c)
Definition
fx_extension.h:101
FXSYS_IsUpperASCII
bool FXSYS_IsUpperASCII(int32_t c)
Definition
fx_extension.h:51
FXSYS_IsLowerASCII
bool FXSYS_IsLowerASCII(int32_t c)
Definition
fx_extension.h:47
qtwebengine
src
3rdparty
chromium
third_party
pdfium
fxbarcode
datamatrix
BC_TextEncoder.cpp
Generated on Sat Sep 21 2024 00:58:22 for Qt by
1.12.0