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_ONEDCODA128WRITER_H_ 8 #define _BC_ONEDCODA128WRITER_H_ 9 class CBC_OneDimWriter; 10 class CBC_OnedCoda128Writer; 11 class CBC_OnedCode128Writer : public CBC_OneDimWriter { 12 public: 13 CBC_OnedCode128Writer(); 14 CBC_OnedCode128Writer(BC_TYPE type); 15 virtual ~CBC_OnedCode128Writer(); 16 uint8_t* Encode(const CFX_ByteString& contents, 17 BCFORMAT format, 18 int32_t& outWidth, 19 int32_t& outHeight, 20 int32_t hints, 21 int32_t& e); 22 uint8_t* Encode(const CFX_ByteString& contents, 23 BCFORMAT format, 24 int32_t& outWidth, 25 int32_t& outHeight, 26 int32_t& e); 27 uint8_t* Encode(const CFX_ByteString& contents, 28 int32_t& outLength, 29 int32_t& e); 30 FX_BOOL CheckContentValidity(const CFX_WideStringC& contents); 31 CFX_WideString FilterContents(const CFX_WideStringC& contents); 32 FX_BOOL SetTextLocation(BC_TEXT_LOC location); 33 BC_TYPE GetType(); 34 35 private: 36 FX_BOOL IsDigits(const CFX_ByteString& contents, 37 int32_t start, 38 int32_t length); 39 int32_t Encode128B(const CFX_ByteString& contents, CFX_PtrArray& patterns); 40 int32_t Encode128C(const CFX_ByteString& contents, CFX_PtrArray& patterns); 41 BC_TYPE m_codeFormat; 42 const static int32_t CODE_START_B; 43 const static int32_t CODE_START_C; 44 const static int32_t CODE_CODE_B; 45 const static int32_t CODE_CODE_C; 46 const static int32_t CODE_STOP; 47 }; 48 #endif 49