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

Commit fdcd4db

Browse files
committed
Add support Code 128
1 parent 39045b7 commit fdcd4db

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
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include "Code128Generator.h"
34
#include "Code39Generator.h"
45
#include "Code93Generator.h"
56
#include "DataBarExpandedGenerator.h"

include/Code128Generator.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 Code128Generator : public virtual IBarcodeGenerator {
16+
private:
17+
ZXing::MultiFormatWriter writer{ZXing::BarcodeFormat::Code128};
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
@@ -21,6 +21,8 @@ BarcodeFactory::create(const std::string type) {
2121
return std::make_unique<Code39Generator>();
2222
} else if (type == "Code93") {
2323
return std::make_unique<Code93Generator>();
24+
} else if (type == "Code128") {
25+
return std::make_unique<Code128Generator>();
2426
}
2527

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

src/Code128Generator.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "../include/Code128Generator.h"
2+
3+
std::string Code128Generator::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)