From 5336e8ff4b00a4f5205086b55ad0b769ad4316b9 Mon Sep 17 00:00:00 2001 From: intel-x86-64 <192.cpp@gmail.com> Date: Mon, 1 Dec 2025 18:34:18 +0300 Subject: [PATCH 1/3] Rename class for Qr code --- include/BarcodeFactory.h | 2 +- include/{QrGenerator.h => QRCodeGenerator.h} | 2 +- src/BarcodeFactory.cpp | 6 +++--- src/{QrGenerator.cpp => QRCodeGenerator.cpp} | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) rename include/{QrGenerator.h => QRCodeGenerator.h} (89%) rename src/{QrGenerator.cpp => QRCodeGenerator.cpp} (51%) diff --git a/include/BarcodeFactory.h b/include/BarcodeFactory.h index 8bbb196..b23beb0 100644 --- a/include/BarcodeFactory.h +++ b/include/BarcodeFactory.h @@ -7,7 +7,7 @@ #include "DataMatrixGenerator.h" #include "IBarcodeGenerator.h" #include "ItfGenerator.h" -#include "QrGenerator.h" +#include "QRCodeGenerator.h" #include "UpcAGenerator.h" #include #include 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..30f7a4e 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/src/BarcodeFactory.cpp b/src/BarcodeFactory.cpp index a60a862..3683ed3 100644 --- a/src/BarcodeFactory.cpp +++ b/src/BarcodeFactory.cpp @@ -3,8 +3,8 @@ 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") { @@ -21,5 +21,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/QrGenerator.cpp b/src/QRCodeGenerator.cpp similarity index 51% rename from src/QrGenerator.cpp rename to src/QRCodeGenerator.cpp index 94123d7..abbe6d8 100644 --- a/src/QrGenerator.cpp +++ b/src/QRCodeGenerator.cpp @@ -1,7 +1,7 @@ -#include "../include/QrGenerator.h" +#include "../include/QRCodeGenerator.h" -std::string QrGenerator::generate(const std::string &text, int margin, - int size) { +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); From c13abbba0ea810a688da3cffc76a5c1a126e4c4a Mon Sep 17 00:00:00 2001 From: intel-x86-64 <192.cpp@gmail.com> Date: Mon, 1 Dec 2025 18:42:38 +0300 Subject: [PATCH 2/3] Another rename QrCode class --- include/BarcodeFactory.h | 2 +- include/{QRCodeGenerator.h => QrCodeGenerator.h} | 2 +- src/BarcodeFactory.cpp | 10 +++++----- src/{QRCodeGenerator.cpp => QrCodeGenerator.cpp} | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) rename include/{QRCodeGenerator.h => QrCodeGenerator.h} (89%) rename src/{QRCodeGenerator.cpp => QrCodeGenerator.cpp} (69%) diff --git a/include/BarcodeFactory.h b/include/BarcodeFactory.h index b23beb0..5470193 100644 --- a/include/BarcodeFactory.h +++ b/include/BarcodeFactory.h @@ -7,7 +7,7 @@ #include "DataMatrixGenerator.h" #include "IBarcodeGenerator.h" #include "ItfGenerator.h" -#include "QRCodeGenerator.h" +#include "QrCodeGenerator.h" #include "UpcAGenerator.h" #include #include diff --git a/include/QRCodeGenerator.h b/include/QrCodeGenerator.h similarity index 89% rename from include/QRCodeGenerator.h rename to include/QrCodeGenerator.h index 30f7a4e..5c867e4 100644 --- a/include/QRCodeGenerator.h +++ b/include/QrCodeGenerator.h @@ -12,7 +12,7 @@ #include #include -class QRCodeGenerator : public virtual IBarcodeGenerator { +class QrCodeGenerator : public virtual IBarcodeGenerator { private: ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::QRCode}; diff --git a/src/BarcodeFactory.cpp b/src/BarcodeFactory.cpp index 3683ed3..1ff2cc3 100644 --- a/src/BarcodeFactory.cpp +++ b/src/BarcodeFactory.cpp @@ -3,13 +3,13 @@ std::unique_ptr BarcodeFactory::create(const std::string type) { - if (type == "QRCode") { - 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 == "Itf") { return std::make_unique(); } else if (type == "DataBar") { return std::make_unique(); @@ -21,5 +21,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 similarity index 69% rename from src/QRCodeGenerator.cpp rename to src/QrCodeGenerator.cpp index abbe6d8..80794aa 100644 --- a/src/QRCodeGenerator.cpp +++ b/src/QrCodeGenerator.cpp @@ -1,6 +1,6 @@ -#include "../include/QRCodeGenerator.h" +#include "../include/QrCodeGenerator.h" -std::string QRCodeGenerator::generate(const std::string &text, int margin, +std::string QrCodeGenerator::generate(const std::string &text, int margin, int size) { writer.setMargin(margin); writer.setEncoding(ZXing::CharacterSet::UTF8); From 39045b7d01c1bd9f4ff893e0e869899466b2dccf Mon Sep 17 00:00:00 2001 From: intel-x86-64 <192.cpp@gmail.com> Date: Mon, 1 Dec 2025 18:54:36 +0300 Subject: [PATCH 3/3] Add support for Upc-E --- include/BarcodeFactory.h | 1 + include/UpcEGenerator.h | 21 +++++++++++++++++++++ src/BarcodeFactory.cpp | 2 ++ src/UpcEGenerator.cpp | 10 ++++++++++ 4 files changed, 34 insertions(+) create mode 100644 include/UpcEGenerator.h create mode 100644 src/UpcEGenerator.cpp diff --git a/include/BarcodeFactory.h b/include/BarcodeFactory.h index 5470193..a033652 100644 --- a/include/BarcodeFactory.h +++ b/include/BarcodeFactory.h @@ -9,6 +9,7 @@ #include "ItfGenerator.h" #include "QrCodeGenerator.h" #include "UpcAGenerator.h" +#include "UpcEGenerator.h" #include #include class BarcodeFactory { 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 1ff2cc3..2ad3411 100644 --- a/src/BarcodeFactory.cpp +++ b/src/BarcodeFactory.cpp @@ -9,6 +9,8 @@ BarcodeFactory::create(const std::string type) { return std::make_unique(); } else if (type == "UpcA") { return std::make_unique(); + } else if (type == "UpcE") { + return std::make_unique(); } else if (type == "Itf") { return std::make_unique(); } else if (type == "DataBar") { diff --git a/src/UpcEGenerator.cpp b/src/UpcEGenerator.cpp new file mode 100644 index 0000000..4cea9a1 --- /dev/null +++ b/src/UpcEGenerator.cpp @@ -0,0 +1,10 @@ +#include "../include/UpcEGenerator.h" + +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); + + return ZXing::ToSVG(matrix); +} \ No newline at end of file