diff --git a/include/BarcodeFactory.h b/include/BarcodeFactory.h index 7ea1a81..4d94915 100644 --- a/include/BarcodeFactory.h +++ b/include/BarcodeFactory.h @@ -7,6 +7,7 @@ #include "Code93Generator.h" #include "DataMatrixGenerator.h" #include "Ean13Generator.h" +#include "Ean8Generator.h" #include "IBarcodeGenerator.h" #include "ItfGenerator.h" #include "Pdf417Generator.h" diff --git a/include/Ean8Generator.h b/include/Ean8Generator.h new file mode 100644 index 0000000..2e6d370 --- /dev/null +++ b/include/Ean8Generator.h @@ -0,0 +1,21 @@ +#pragma once +#include "IBarcodeGenerator.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class Ean8Generator : public virtual IBarcodeGenerator { +private: + ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::EAN8}; + +public: + std::string generate(const std::string &text, int margin, int size); +}; \ No newline at end of file diff --git a/src/BarcodeFactory.cpp b/src/BarcodeFactory.cpp index e47337d..67d08c5 100644 --- a/src/BarcodeFactory.cpp +++ b/src/BarcodeFactory.cpp @@ -26,7 +26,9 @@ BarcodeFactory::create(const std::string type) { } else if (type == "Pdf417") { return std::make_unique(); } else if (type == "Ean13") { - std::make_unique(); + return std::make_unique(); + } else if (type == "Ean8") { + return std::make_unique(); } return std::make_unique(); diff --git a/src/Ean8Generator.cpp b/src/Ean8Generator.cpp new file mode 100644 index 0000000..92e8ea8 --- /dev/null +++ b/src/Ean8Generator.cpp @@ -0,0 +1,10 @@ +#include "../include/Ean8Generator.h" + +std::string Ean8Generator::generate(const std::string &text, int margin, + int size) { + writer.setMargin(margin); + writer.setEncoding(ZXing::CharacterSet::UTF8); + ZXing::BitMatrix matrix = writer.encode(text, size, size); + + return ZXing::ToSVG(matrix); +} \ No newline at end of file