在本文中,我將演示如何使用 C++ 以編程方式生成條形碼。您還將學習如何在您的 C++ 應用程序中實現條碼掃描器或讀取器。
條形碼用於以機器可讀的形式直觀地表示數據。上述技術已被證明非常有用,尤其是在商店和超市部署的自動結賬系統中。現在市場上幾乎所有產品都帶有條形碼。條形碼的廣泛流行已將其用例擴展到各個領域。關注條碼的重要性,幾年前,Aspose 推出了適用於各種平台的條碼生成器和閱讀器 API。本文旨在展示如何在 C++ 應用程序中實現條碼生成器和讀取器以動態生成和讀取條碼。
- 使用 C++ 生成條形碼
- 使用 C++ 生成二維條碼(QR 或其他)
- 使用 C++ 創建具有自定義外觀的條形碼
- 使用 C++ 創建帶有標題的條形碼
- 使用 C++ 掃描和讀取條形碼
- 使用 C++ 讀取多個條形碼符號
C++ 條碼生成器和讀取器 API
Aspose.BarCode for C++ 是一個功能豐富的 C++ API,用於生成和讀取大量一維和二維條碼。它允許您生成、自定義條形碼並將其導出為高質量圖像。您可以從 下載 部分下載庫文件。可下載的軟件包還包含一個演示 C++ 應用程序供您使用。
以下是您可以使用 Aspose.BarCode for C++ 生成的條形碼符號列表:
- 代碼128
- Code39標準
- Code39擴展
- Code93標準
- Code93擴展
- 代碼11
- 科達巴
- 書城EAN
- EAN13
- EAN8
- EAN128
- 交錯2of5
- 標準2 of 5
- 微星
- 郵網
- 行星
- 聯合會
- 統一教育教育
- EAN14(SCC14)
- SSCC18
- ITF14
- 條碼補充
- PDF417
- 二維碼
- 數據矩陣
- 矩陣 2 of 5
- PZN(Pharma Zentral Nummer,Pharmazentralnummer 條形碼)
- 德國郵政代碼
- 阿茲台克人
- 澳大利亞郵政
使用 C++ 生成條形碼
使用 Aspose.BarCode 生成條形碼可以在幾行代碼內實現。以下是執行此操作的步驟。
- 創建 BarcodeGenerator 類的對象。
- 使用條形碼的編碼類型及其文本初始化對象。
- 使用 BarcodeGenerator->Save(System::String) 方法生成條形碼。
以下代碼示例顯示瞭如何使用 C++ 生成條形碼。
const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// 創建條形碼生成器
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// 生成條形碼並保存為圖像
barcodeGenerator->Save(fileName);
以下是我們使用上述代碼生成的條形碼。
使用 C++ 生成二維條碼(QR 或其他)
在前面的示例中,我們創建了一個一維條形碼。現在讓我們創建一個二維條碼,例如 QR 碼。以下是創建二維碼的步驟。
- 創建 BarcodeGenerator 類的對象。
- 使用 EncodeTypes::QR 類型初始化對象並設置其文本。
- 使用 BarcodeGenerator->Save(System::String) 方法創建條形碼圖像。
以下代碼示例顯示瞭如何使用 C++ 生成 QR 條形碼。
const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// 創建條形碼生成器
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// 生成條形碼並保存為圖像
barcodeGenerator->Save(fileName);
使用上述代碼將生成以下二維碼。
使用 C++ 生成自定義條形碼
您還可以自定義條形碼的外觀。例如,您可以設置前景色、背景色、大小、邊框樣式等。下面介紹使用Aspose.BarCode for C++自定義條碼的步驟。
- 創建並初始化 BarcodeGenerator 類的對象。
- 使用 BarcodeGenerator->getParameters() 方法訪問條形碼參數。
- 設置所需的參數。
- 生成條形碼並將其保存為圖像。
以下代碼示例顯示瞭如何使用 C++ 生成自定義條形碼。
System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// 設置兄弟風格
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// 設置寬度
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// 設置邊框可見性
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// 設置背景顏色
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// 設置條形碼的條形顏色
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// 設置邊框顏色
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// 設置文字顏色
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// 設置圖像分辨率
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));
以下是我們生成的自定義 Aztec 條形碼。
使用 C++ 生成帶有標題的條形碼
條形碼還可以在條形碼下方或上方包含標題。您可以設置標題的文本及其在條形碼圖像中的可見性。以下代碼示例顯示瞭如何使用 C++ 生成帶有標題的條形碼。
System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// 在上面設置標題
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// 設置可見性
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// 在下面設置標題
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// 設置可見性
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// 設置分辨率
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));
以下是帶有上方和下方標題的條形碼。
使用 C++ 掃描和讀取條形碼
現在讓我們看看如何使用 Aspose.BarCode for C++ 掃描和讀取條碼。以下是執行此功能的步驟。
- 創建 BarCodeReader 類的實例。
- 使用條形碼的圖像文件及其符號系統初始化 BarCodeReader 實例。
- 使用 BarCodeReader->Read() 方法檢索條形碼的文本和類型。
以下代碼示例展示瞭如何使用 C++ 掃描和讀取條形碼。
// 創建 BarcodeGenerator 類的實例
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
// 顯示代碼文本和符號類型
System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();
使用 C++ 讀取具有多種符號體系的條形碼
大多數時候,圖像只包含一個條形碼符號體系。但是,在某些情況下,圖像可能同時包含多種符號體系的條形碼。在這種情況下,您可以提供要掃描和讀取的條形碼符號列表。
以下代碼示例顯示瞭如何使用 C++ 掃描具有多個條碼符號體系的圖像。
// 設置條形碼符號
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });
// 初始化 BarCodeReader,在循環中調用 Read() 方法並顯示代碼文本和符號類型
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"RecognizingMultipleSymbologies.png", objArray);
while (reader->Read())
{
System::Console::WriteLine(System::String(u"Codetext: ") + reader->GetCodeText());
System::Console::WriteLine(System::String(u"Symbology type: ") + reader->GetCodeType());
}
reader->Close();
結論
在本文中,您學習瞭如何使用 C++ 生成具有不同符號體系的條形碼。此外,還討論了掃描和讀取條碼的過程以及 C++ 代碼示例。您可以使用 文檔 探索有關 API 的更多信息。