7#include "fxbarcode/cbc_eancode.h"
11#include "fxbarcode/BC_Library.h"
12#include "fxbarcode/oned/BC_OnedEANWriter.h"
20 return static_cast<CBC_OneDimEANWriter*>(m_pBCWriter.get());
28 m_renderContents = Preprocess(contents);
31 return pWriter->RenderResult(m_renderContents.AsStringView(),
32 pWriter->Encode(str));
37 return GetOneDimEANWriter()->RenderDeviceResult(
38 device, matrix, m_renderContents.AsStringView());
44 size_t length = encoded_contents.GetLength();
45 size_t max_length = GetMaxLength();
46 if (length <= max_length) {
47 for (size_t i = 0; i < max_length - length; i++)
48 encoded_contents.InsertAtFront(L'0');
52 str
+= '0' + checksum;
55 encoded_contents = encoded_contents.First(max_length + 1);
58 return encoded_contents;
fxcrt::ByteString ByteString
CBC_EANCode(std::unique_ptr< CBC_OneDimEANWriter > pWriter)
WideString Preprocess(WideStringView contents)
bool RenderDevice(CFX_RenderDevice *device, const CFX_Matrix &matrix) override
bool Encode(WideStringView contents) override
CBC_OneDimEANWriter * GetOneDimEANWriter()
virtual int32_t CalcChecksum(const ByteString &contents)=0
virtual void InitEANWriter()
virtual WideString FilterContents(WideStringView contents)=0
virtual bool CheckContentValidity(WideStringView contents)=0
ByteString & operator+=(char ch)
ByteString ToUTF8() const
static WideString FromUTF8(ByteStringView str)
fxcrt::WideStringView WideStringView
fxcrt::WideString WideString