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_ONEDCODA39WRITER_H_
8 #define _BC_ONEDCODA39WRITER_H_
9 enum BC_TEXT_LOC;
10 class CBC_OneDimWriter;
11 class CBC_OnedCoda39Writer;
12 class CBC_OnedCode39Writer : public CBC_OneDimWriter {
13  public:
14   CBC_OnedCode39Writer();
15   CBC_OnedCode39Writer(FX_BOOL extendedMode);
16   virtual ~CBC_OnedCode39Writer();
17   uint8_t* Encode(const CFX_ByteString& contents,
18                   BCFORMAT format,
19                   int32_t& outWidth,
20                   int32_t& outHeight,
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 hints,
27                   int32_t& e);
28   uint8_t* Encode(const CFX_ByteString& contents,
29                   int32_t& outLength,
30                   int32_t& e);
31   void RenderResult(const CFX_WideStringC& contents,
32                     uint8_t* code,
33                     int32_t codeLength,
34                     FX_BOOL isDevice,
35                     int32_t& e);
36   CFX_WideString encodedContents(const CFX_WideStringC& contents, int32_t& e);
37   FX_BOOL CheckContentValidity(const CFX_WideStringC& contents);
38   FX_BOOL CheckExtendedContentValidity(const CFX_WideStringC& contents);
39   CFX_WideString FilterContents(const CFX_WideStringC& contents);
40   CFX_WideString FilterExtendedContents(const CFX_WideStringC& contents);
41   CFX_WideString RenderTextContents(const CFX_WideStringC& contents);
42   CFX_WideString RenderExtendedTextContents(const CFX_WideStringC& contents);
43   FX_BOOL SetTextLocation(BC_TEXT_LOC loction);
44   FX_BOOL SetWideNarrowRatio(int32_t ratio);
45 
46  private:
47   void ToIntArray(int32_t a, int32_t* toReturn);
48   FX_CHAR CalcCheckSum(const CFX_ByteString& contents, int32_t& e);
49   int32_t m_iWideNarrRatio;
50   FX_BOOL m_extendedMode;
51 };
52 #endif
53