• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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