1 // Copyright 2016 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 FXBARCODE_CBC_ONECODE_H_ 8 #define FXBARCODE_CBC_ONECODE_H_ 9 10 #include <memory> 11 12 #include "core/fxcrt/fx_string.h" 13 #include "core/fxcrt/fx_system.h" 14 #include "fxbarcode/cbc_codebase.h" 15 16 class CBC_OneDimWriter; 17 class CFX_Font; 18 19 class CBC_OneCode : public CBC_CodeBase { 20 public: 21 // Limit the size of 1D barcodes. Typical 1D barcodes are short so this should 22 // be sufficient for most use cases. 23 static constexpr size_t kMaxInputLengthBytes = 8192; 24 25 explicit CBC_OneCode(std::unique_ptr<CBC_Writer> pWriter); 26 ~CBC_OneCode() override; 27 28 virtual bool CheckContentValidity(WideStringView contents); 29 virtual WideString FilterContents(WideStringView contents); 30 31 void SetPrintChecksum(bool checksum); 32 void SetDataLength(int32_t length); 33 void SetCalChecksum(bool calc); 34 bool SetFont(CFX_Font* cFont); 35 void SetFontSize(float size); 36 void SetFontStyle(int32_t style); 37 void SetFontColor(FX_ARGB color); 38 39 private: 40 CBC_OneDimWriter* GetOneDimWriter(); 41 }; 42 43 #endif // FXBARCODE_CBC_ONECODE_H_ 44