Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 7fd9ead

Browse files
authored
Merge pull request #17 from intel-x86-64/feature/MVP
Add support Ean13
2 parents e2e95fb + e3e99c6 commit 7fd9ead

4 files changed

Lines changed: 34 additions & 0 deletions

File tree

include/BarcodeFactory.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "Code39Generator.h"
77
#include "Code93Generator.h"
88
#include "DataMatrixGenerator.h"
9+
#include "Ean13Generator.h"
910
#include "IBarcodeGenerator.h"
1011
#include "ItfGenerator.h"
1112
#include "Pdf417Generator.h"

include/Ean13Generator.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
#include "IBarcodeGenerator.h"
3+
#include <ZXing/Barcode.h>
4+
#include <ZXing/BarcodeFormat.h>
5+
#include <ZXing/BitMatrix.h>
6+
#include <ZXing/BitMatrixIO.h>
7+
#include <ZXing/CharacterSet.h>
8+
#include <ZXing/Matrix.h>
9+
#include <ZXing/MultiFormatWriter.h>
10+
#include <memory>
11+
#include <stdexcept>
12+
#include <string>
13+
#include <utility>
14+
15+
class Ean13Generator : public virtual IBarcodeGenerator {
16+
private:
17+
ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::EAN13};
18+
19+
public:
20+
std::string generate(const std::string &text, int margin, int size);
21+
};

src/BarcodeFactory.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ BarcodeFactory::create(const std::string type) {
2525
return std::make_unique<AztecGenerator>();
2626
} else if (type == "Pdf417") {
2727
return std::make_unique<Pdf417Generator>();
28+
} else if (type == "Ean13") {
29+
std::make_unique<Ean13Generator>();
2830
}
2931

3032
return std::make_unique<QrCodeGenerator>();

src/Ean13Generator.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "../include/Ean13Generator.h"
2+
3+
std::string Ean13Generator::generate(const std::string &text, int margin,
4+
int size) {
5+
writer.setMargin(margin);
6+
writer.setEncoding(ZXing::CharacterSet::UTF8);
7+
ZXing::BitMatrix matrix = writer.encode(text, size, size);
8+
9+
return ZXing::ToSVG(matrix);
10+
}

0 commit comments

Comments
 (0)