diff --git a/include/BarcodeFactory.h b/include/BarcodeFactory.h index 8bbb196..a033652 100644 --- a/include/BarcodeFactory.h +++ b/include/BarcodeFactory.h @@ -7,8 +7,9 @@ #include "DataMatrixGenerator.h" #include "IBarcodeGenerator.h" #include "ItfGenerator.h" -#include "QrGenerator.h" +#include "QrCodeGenerator.h" #include "UpcAGenerator.h" +#include "UpcEGenerator.h" #include #include class BarcodeFactory { diff --git a/include/QrGenerator.h b/include/QrCodeGenerator.h similarity index 89% rename from include/QrGenerator.h rename to include/QrCodeGenerator.h index eeadea1..5c867e4 100644 --- a/include/QrGenerator.h +++ b/include/QrCodeGenerator.h @@ -12,7 +12,7 @@ #include #include -class QrGenerator : public virtual IBarcodeGenerator { +class QrCodeGenerator : public virtual IBarcodeGenerator { private: ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::QRCode}; diff --git a/include/UpcEGenerator.h b/include/UpcEGenerator.h new file mode 100644 index 0000000..ad3f563 --- /dev/null +++ b/include/UpcEGenerator.h @@ -0,0 +1,21 @@ +#pragma once +#include "IBarcodeGenerator.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class UpcEGenerator : public virtual IBarcodeGenerator { +private: + ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::UPCE}; + +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 a60a862..2ad3411 100644 --- a/src/BarcodeFactory.cpp +++ b/src/BarcodeFactory.cpp @@ -3,13 +3,15 @@ std::unique_ptr BarcodeFactory::create(const std::string type) { - if (type == "Qr") { - return std::make_unique(); + if (type == "QrCode") { + return std::make_unique(); } else if (type == "DataMatrix") { return std::make_unique(); - } else if (type == "UPCA") { + } else if (type == "UpcA") { return std::make_unique(); - } else if (type == "ITF") { + } else if (type == "UpcE") { + return std::make_unique(); + } else if (type == "Itf") { return std::make_unique(); } else if (type == "DataBar") { return std::make_unique(); @@ -21,5 +23,5 @@ BarcodeFactory::create(const std::string type) { return std::make_unique(); } - return std::make_unique(); + return std::make_unique(); } \ No newline at end of file diff --git a/src/QrCodeGenerator.cpp b/src/QrCodeGenerator.cpp new file mode 100644 index 0000000..80794aa --- /dev/null +++ b/src/QrCodeGenerator.cpp @@ -0,0 +1,10 @@ +#include "../include/QrCodeGenerator.h" + +std::string QrCodeGenerator::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 diff --git a/src/QrGenerator.cpp b/src/UpcEGenerator.cpp similarity index 51% rename from src/QrGenerator.cpp rename to src/UpcEGenerator.cpp index 94123d7..4cea9a1 100644 --- a/src/QrGenerator.cpp +++ b/src/UpcEGenerator.cpp @@ -1,7 +1,7 @@ -#include "../include/QrGenerator.h" +#include "../include/UpcEGenerator.h" -std::string QrGenerator::generate(const std::string &text, int margin, - int size) { +std::string UpcEGenerator::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);