blob: b2b85d20e9ff3129f43c440e79628c1def47433b [file] [log] [blame]
Dan Sinclair1770c022016-03-14 14:14:16 -04001// 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 XFA_FXBARCODE_ONED_BC_ONEDEAN13WRITER_H_
8#define XFA_FXBARCODE_ONED_BC_ONEDEAN13WRITER_H_
9
Dan Sinclaira8a28e02016-03-23 15:41:39 -040010#include "core/fxcrt/include/fx_string.h"
11#include "core/fxcrt/include/fx_system.h"
Dan Sinclaira98600a2016-03-21 15:15:56 -040012#include "xfa/fxbarcode/oned/BC_OneDimWriter.h"
Dan Sinclair1770c022016-03-14 14:14:16 -040013
Dan Sinclaira98600a2016-03-21 15:15:56 -040014class CFX_DIBitmap;
15class CFX_RenderDevice;
16
17class CBC_OnedEAN13Writer : public CBC_OneDimWriter {
Dan Sinclair1770c022016-03-14 14:14:16 -040018 public:
19 CBC_OnedEAN13Writer();
weili29b8ad02016-06-14 18:20:04 -070020 ~CBC_OnedEAN13Writer() override;
Dan Sinclair1770c022016-03-14 14:14:16 -040021
weili29b8ad02016-06-14 18:20:04 -070022 // CBC_OneDimWriter
Dan Sinclair1770c022016-03-14 14:14:16 -040023 uint8_t* Encode(const CFX_ByteString& contents,
24 BCFORMAT format,
25 int32_t& outWidth,
26 int32_t& outHeight,
weili29b8ad02016-06-14 18:20:04 -070027 int32_t& e) override;
Dan Sinclair1770c022016-03-14 14:14:16 -040028 uint8_t* Encode(const CFX_ByteString& contents,
29 BCFORMAT format,
30 int32_t& outWidth,
31 int32_t& outHeight,
32 int32_t hints,
weili29b8ad02016-06-14 18:20:04 -070033 int32_t& e) override;
Dan Sinclair1770c022016-03-14 14:14:16 -040034 uint8_t* Encode(const CFX_ByteString& contents,
35 int32_t& outLength,
weili29b8ad02016-06-14 18:20:04 -070036 int32_t& e) override;
Dan Sinclair1770c022016-03-14 14:14:16 -040037 void RenderResult(const CFX_WideStringC& contents,
38 uint8_t* code,
39 int32_t codeLength,
40 FX_BOOL isDevice,
weili29b8ad02016-06-14 18:20:04 -070041 int32_t& e) override;
42 FX_BOOL CheckContentValidity(const CFX_WideStringC& contents) override;
43 CFX_WideString FilterContents(const CFX_WideStringC& contents) override;
44
Dan Sinclair1770c022016-03-14 14:14:16 -040045 int32_t CalcChecksum(const CFX_ByteString& contents);
46
47 protected:
48 void ShowChars(const CFX_WideStringC& contents,
49 CFX_DIBitmap* pOutBitmap,
50 CFX_RenderDevice* device,
51 const CFX_Matrix* matrix,
52 int32_t barWidth,
53 int32_t multiple,
weili29b8ad02016-06-14 18:20:04 -070054 int32_t& e) override;
Dan Sinclaira98600a2016-03-21 15:15:56 -040055
56 private:
57 int32_t m_codeWidth;
Dan Sinclair1770c022016-03-14 14:14:16 -040058};
59
60#endif // XFA_FXBARCODE_ONED_BC_ONEDEAN13WRITER_H_