CFX_WideString CBC_EAN13::Preprocess(const CFX_WideStringC& contents) { CFX_WideString encodeContents = static_cast<CBC_OnedEAN13Writer*>(m_pBCWriter.get()) ->FilterContents(contents); int32_t length = encodeContents.GetLength(); if (length <= 12) { for (int32_t i = 0; i < 12 - length; i++) encodeContents = FX_WCHAR('0') + encodeContents; CFX_ByteString byteString = encodeContents.UTF8Encode(); int32_t checksum = static_cast<CBC_OnedEAN13Writer*>(m_pBCWriter.get()) ->CalcChecksum(byteString); byteString += checksum - 0 + '0'; encodeContents = byteString.UTF8Decode(); } if (length > 13) encodeContents = encodeContents.Mid(0, 13); return encodeContents; }