7#include "fxbarcode/cfx_barcode.h"
11#include "fxbarcode/cbc_codabar.h"
12#include "fxbarcode/cbc_code128.h"
13#include "fxbarcode/cbc_code39.h"
14#include "fxbarcode/cbc_codebase.h"
15#include "fxbarcode/cbc_datamatrix.h"
16#include "fxbarcode/cbc_ean13.h"
17#include "fxbarcode/cbc_ean8.h"
18#include "fxbarcode/cbc_pdf417i.h"
19#include "fxbarcode/cbc_qrcode.h"
20#include "fxbarcode/cbc_upca.h"
21#include "third_party/base/memory/ptr_util.h"
22#include "third_party/base/notreached.h"
26std::unique_ptr<CBC_CodeBase> CreateBarCodeEngineObject(
BC_TYPE type) {
29 return std::make_unique<CBC_Code39>();
31 return std::make_unique<CBC_Codabar>();
39 return std::make_unique<CBC_EAN8>();
41 return std::make_unique<CBC_UPCA>();
43 return std::make_unique<CBC_EAN13>();
45 return std::make_unique<CBC_QRCode>();
47 return std::make_unique<CBC_PDF417I>();
49 return std::make_unique<CBC_DataMatrix>();
53 NOTREACHED_NORETURN();
63 auto barcode = pdfium::WrapUnique(
new CFX_Barcode());
64 barcode->m_pBCEngine = CreateBarCodeEngineObject(type);
69 return m_pBCEngine ? m_pBCEngine->GetType() : BC_TYPE::kUnknown;
74 m_pBCEngine->SetCharEncoding(encoding);
78 return m_pBCEngine && m_pBCEngine->SetModuleHeight(moduleHeight);
82 return m_pBCEngine && m_pBCEngine->SetModuleWidth(moduleWidth);
87 m_pBCEngine->SetHeight(height);
92 m_pBCEngine->SetWidth(width);
100 case BC_TYPE::kCode39:
101 case BC_TYPE::kCodabar:
102 case BC_TYPE::kCode128:
103 case BC_TYPE::kCode128B:
104 case BC_TYPE::kCode128C:
106 case BC_TYPE::kEAN13:
108 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetPrintChecksum(checksum);
120 case BC_TYPE::kCode39:
121 case BC_TYPE::kCodabar:
122 case BC_TYPE::kCode128:
123 case BC_TYPE::kCode128B:
124 case BC_TYPE::kCode128C:
126 case BC_TYPE::kEAN13:
128 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetDataLength(length);
140 case BC_TYPE::kCode39:
141 case BC_TYPE::kCodabar:
142 case BC_TYPE::kCode128:
143 case BC_TYPE::kCode128B:
144 case BC_TYPE::kCode128C:
146 case BC_TYPE::kEAN13:
148 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetCalChecksum(state);
160 case BC_TYPE::kCode39:
161 case BC_TYPE::kCodabar:
162 case BC_TYPE::kCode128:
163 case BC_TYPE::kCode128B:
164 case BC_TYPE::kCode128C:
166 case BC_TYPE::kEAN13:
168 return static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFont(pFont);
179 case BC_TYPE::kCode39:
180 case BC_TYPE::kCodabar:
181 case BC_TYPE::kCode128:
182 case BC_TYPE::kCode128B:
183 case BC_TYPE::kCode128C:
185 case BC_TYPE::kEAN13:
187 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFontSize(size);
199 case BC_TYPE::kCode39:
200 case BC_TYPE::kCodabar:
201 case BC_TYPE::kCode128:
202 case BC_TYPE::kCode128B:
203 case BC_TYPE::kCode128C:
205 case BC_TYPE::kEAN13:
207 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFontColor(color);
216 m_pBCEngine->SetTextLocation(location);
220 return m_pBCEngine && m_pBCEngine->SetWideNarrowRatio(ratio);
224 return m_pBCEngine && m_pBCEngine->SetStartChar(start);
228 return m_pBCEngine && m_pBCEngine->SetEndChar(end);
232 return m_pBCEngine && m_pBCEngine->SetErrorCorrectionLevel(level);
236 return m_pBCEngine && m_pBCEngine->Encode(contents);
241 return m_pBCEngine && m_pBCEngine->RenderDevice(device, matrix);
bool SetEndChar(char end)
bool SetModuleWidth(int32_t moduleWidth)
bool SetStartChar(char start)
bool SetPrintChecksum(bool checksum)
void SetTextLocation(BC_TEXT_LOC location)
void SetHeight(int32_t height)
bool SetErrorCorrectionLevel(int32_t level)
bool SetModuleHeight(int32_t moduleHeight)
bool SetCalChecksum(bool state)
bool SetDataLength(int32_t length)
bool SetFont(CFX_Font *pFont)
void SetCharEncoding(BC_CHAR_ENCODING encoding)
bool Encode(WideStringView contents)
bool SetFontSize(float size)
void SetWidth(int32_t width)
bool SetFontColor(FX_ARGB color)
bool RenderDevice(CFX_RenderDevice *device, const CFX_Matrix &matrix)
bool SetWideNarrowRatio(int8_t ratio)