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_ONEDUPCAWRITER_H_
8 #define _BC_ONEDUPCAWRITER_H_
9 class CBC_Writer;
10 class CBC_OnedEAN13Writer;
11 class CBC_OnedUPCAWriter;
12 class CBC_OnedUPCAWriter : public CBC_OneDimWriter {
13  private:
14   CBC_OnedEAN13Writer* m_subWriter;
15 
16  public:
17   CBC_OnedUPCAWriter();
18   virtual ~CBC_OnedUPCAWriter();
19   virtual void Init();
20   uint8_t* Encode(const CFX_ByteString& contents,
21                   BCFORMAT format,
22                   int32_t& outWidth,
23                   int32_t& outHeight,
24                   int32_t& e);
25   uint8_t* Encode(const CFX_ByteString& contents,
26                   BCFORMAT format,
27                   int32_t& outWidth,
28                   int32_t& outHeight,
29                   int32_t hints,
30                   int32_t& e);
Encode(const CFX_ByteString & contents,int32_t & outLength,int32_t & e)31   uint8_t* Encode(const CFX_ByteString& contents,
32                   int32_t& outLength,
33                   int32_t& e) {
34     return nullptr;
35   }
36   void RenderResult(const CFX_WideStringC& contents,
37                     uint8_t* code,
38                     int32_t codeLength,
39                     FX_BOOL isDevice,
40                     int32_t& e);
41   FX_BOOL CheckContentValidity(const CFX_WideStringC& contents);
42   CFX_WideString FilterContents(const CFX_WideStringC& contents);
43   int32_t CalcChecksum(const CFX_ByteString& contents);
44 
45  protected:
46   void ShowChars(const CFX_WideStringC& contents,
47                  CFX_DIBitmap* pOutBitmap,
48                  CFX_RenderDevice* device,
49                  const CFX_Matrix* matrix,
50                  int32_t barWidth,
51                  int32_t multiple,
52                  int32_t& e);
53 };
54 #endif
55