跳至頁尾內容
使用 IRONBARCODE

如何在 C# Windows 應用程式中列印條碼

1.0 引言

條碼是一種以可見、機器可讀格式呈現資料的途徑。 最初,平行線的間距、寬度和大小各不相同,用來表示條碼中的資料。 這些現代線性或一維 (1D) 條碼可以由稱為條碼閱讀器的專用光學掃描器讀取,條碼閱讀器有多種類型。 後來,出現了二維(2D)變體,稱為矩陣碼或二維條碼,儘管它們實際上並沒有使用條形。 這些變體使用矩形、點、六邊形和其他圖案來代替傳統的條碼。 專為讀取二維條碼而設計的二維光學掃描器有多種配置可供選擇。 另一種讀取二維條碼的方法是使用連接到運行軟體的電腦的數位相機,該軟體拍攝條碼照片並使用該影像對其進行解碼。 後一種形式的二維條碼掃描器可以透過安裝專門的應用軟體,在具有整合攝影機的行動裝置(例如智慧型手機)上使用。

2.0 IronBarcode 功能

使用 IronBarcode 的條碼庫可以輕鬆產生動態條碼。 這個簡單的函式庫只需幾行程式碼即可產生條碼。 IronBarcode 的條碼閱讀器包含強大的條碼產生器,能夠產生高品質的條碼。 這樣條碼掃描器就能輕鬆讀取您的條碼。

  • IronBarcode 可以讀取和寫入大多數條碼格式和二維碼標準,包括 UPC A/E、Databar、EAN 8/13、MSI、Code 39/93/128、CodaB、RSS 14/Expanded 和 ITF。
  • IronBarcode 在讀取掃描影像和即時視訊幀時,可以校正旋轉、雜訊、失真和傾斜。 IronBarcode 在產生條碼時,會自動預處理條碼影像,以提高讀取速度和精確度。 動態條碼之所以受歡迎,是因為它們可以修改內容。
  • IronBarcode 可以利用多個核心和線程,這對批次伺服器來說是有利的。
  • 在單頁和多頁文件中,IronBarcode 可以自動找到一個或多個條碼。
  • IronBarcode 支援 32 位元和 64 位元架構,並且與 .NET Framework 和 .NET Core 實作相容。
  • IronBarcode 支援 PC 和行動平台上的控制台、桌面、雲端和線上應用程式。
  • IronBarcode 可以為各種檔案和串流類型建立條碼影像,包括 PDF、JPG、TIFF、GIF、BMP、PNG 和 HTML。

3.0 在 Visual Studio 中建立新項目

若要使用 IronBarcode 框架,必須先建立一個 Visual Studio .NET 專案。 可以使用任何版本的 Visual Studio,但建議使用最新版本。 根據您的需要,您可以建立 .NET Windows Forms 應用程序,或從各種專案範本中進行選擇。 為了簡化操作,本課我們將使用 Windows 窗體應用程式。

如何在 C# Windows 應用程式中列印條碼 圖 1 - Windows 窗體應用程式

請輸入項目名稱和地點。

如何在 C# Windows 應用程式中列印條碼 圖 2

本專案將使用.NET Framework 4.7。

如何在 C# Windows 應用程式中列印條碼 圖 3 - Form1 應用程式

專案建立完成後,Form1.cs 檔案將在設計器檢視中開啟。 您可以插入程式碼、設計使用者介面,並建置/運行程式。 要在解決方案中使用 IronBarcode 庫,您需要下載所需的軟體包。 這可以透過在程式包管理器控制台中使用以下程式碼來實現:

Install-Package BarCode

如何在 C# Windows 應用程式中列印條碼 圖 4 - 安裝條碼包

或者,您可以使用 NuGet 套件管理器搜尋並下載"條碼"包,這將列出所有搜尋結果。 從這裡您可以選擇需要下載的軟體包。

如何在 C# Windows 應用程式中列印條碼 圖 5 - NuGet 套件管理器

我們的表單中放置了一個SaveFileDialog對話框,讓我們可以將產生的條碼影像儲存到選定的位置。

4.0 使用 IronBarcode 產生條碼

IronBarcode 函式庫允許我們只用幾行程式碼快速產生條碼。 以下是使用 Windows 窗體產生條碼標籤的範例程式碼:

using IronBarCode;  // Import IronBarcode namespace for barcode generation
using System;
using System.Windows.Forms;  // For creating Windows Forms applications

namespace IronBarcode_demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();  // Initializes the form components
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                saveFileDialog1.Filter = ".png|*.png";  // Set file filter for saving as PNG
                DialogResult result = saveFileDialog1.ShowDialog();  // Show save file dialog
                if (result == DialogResult.OK)
                {
                    string filename = saveFileDialog1.FileName;  // Get the filename chosen by the user
                    // Create a QR code using data from textBox1, and save it as a PNG
                    QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng(filename);
                    MessageBox.Show("Barcode Generated Successfully");  // Inform user of success
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);  // Display error message in case of exception
            }
        }
    }
}
using IronBarCode;  // Import IronBarcode namespace for barcode generation
using System;
using System.Windows.Forms;  // For creating Windows Forms applications

namespace IronBarcode_demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();  // Initializes the form components
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                saveFileDialog1.Filter = ".png|*.png";  // Set file filter for saving as PNG
                DialogResult result = saveFileDialog1.ShowDialog();  // Show save file dialog
                if (result == DialogResult.OK)
                {
                    string filename = saveFileDialog1.FileName;  // Get the filename chosen by the user
                    // Create a QR code using data from textBox1, and save it as a PNG
                    QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng(filename);
                    MessageBox.Show("Barcode Generated Successfully");  // Inform user of success
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);  // Display error message in case of exception
            }
        }
    }
}
$vbLabelText   $csharpLabel

在開始編寫程式碼之前,請在 .NET WinForms 應用程式中新增一個文字方塊。 這樣我們就可以輸入文字來產生條碼了。 然後在 Windows 窗體應用程式中新增一個按鈕,並新增範例程式碼中所需的程式碼。 我們還使用了SaveFileDialog工具,它可以幫助將生成的條碼圖像保存到所需位置。

如何在 C# Windows 應用程式中列印條碼 圖 6 - 條碼文字

當使用者點擊"儲存條碼"按鈕時,會跳出"另存為"對話框,允許使用者選擇產生的條碼影像的檔案名稱和儲存位置,該影像將以 PNG 檔案格式儲存。條碼是根據文字方塊中輸入的文字產生的。

如何在 C# Windows 應用程式中列印條碼 圖 7 - 另存為

CreateQrCode函數唯一必要的參數是需要編碼到二維碼影像中的資料(從文字方塊取得的字串或流)。 此方法還接受三個可選參數:

  • 圖形的預設尺寸為寬 500 像素,高 500 像素。
  • 用於糾錯的等級。 IronBarcode 提供四種糾錯等級:低、中、高和最高。建立二維碼時預設使用最高糾錯等級( QRCodeWriter.QrErrorCorrectionLevel.greatest )。
  • 二維碼的版本號。 如果該值為 0(預設值),則指示該方法根據其將要編碼的資料使用適當的版本號。

上面的範例使用中等程度的誤差校正創建了一個 500 x 500 像素的圖形。 透過使用SaveAsPng功能對產生的自訂二維碼進行儲存,我們可以將二維碼儲存為 PNG 文件,並將其儲存到我們從SaveAs文件對話方塊中獲得的指定文件位置。

點擊此處查看更全面的 IronBarcode 指南。

5.0 結論

IronBarcode 庫因其高效能和與各種作業系統的兼容性,被認為是產生和識別條碼的最佳選擇之一。 它提供了一系列功能,用於建立和自訂不同類型的條碼,包括調整文字、顏色、線條寬度和高度的功能。 該庫的許可詳情可在網站上找到,其中包括開發者的付費版本和免費版本。 提供一年的免費更新和支援服務。

常見問題解答

如何在 C# Windows Forms 應用程式中產生條碼?

若要在 C# Windows Forms 應用程式中產生條碼,可以透過 NuGet 套件管理器整合 IronBarcode 程式庫。建立一個文字方塊用於輸入條碼數據,並建立一個按鈕來觸發條碼生成,範例程式碼由 IronBarcode 提供。

在 Visual Studio 中設定用於產生條碼的專案需要哪些步驟?

首先,在 Visual Studio 中建立一個 Windows 窗體應用程序,並安裝 .NET Framework 4.7 或更高版本。然後,使用 NuGet 套件管理器安裝 IronBarcode 套件,以啟用條碼產生功能。

如何將生成的條碼儲存為圖像檔案?

IronBarcode 讓您可以將產生的條碼儲存為 PNG 檔案。您可以使用 Windows 窗體應用程式中的「SaveFileDialog」工具來選擇條碼影像的檔案名稱和儲存位置。

與傳統的線性條碼相比,使用二維條碼有哪些優點?

二維條碼(例如二維碼)可以儲存比傳統線性條碼更多的數據,並且可以被數位相機或專用光學掃描器讀取,使其用途廣泛,適用於各種應用。

產生二維碼時,我可以自訂糾錯等級嗎?

是的,IronBarcode 允許您在產生二維碼時設定糾錯等級。您可以根據二維碼抗損壞或資料遺失能力的要求,將其調整為低、中、高或最高。

是否可以使用 IronBarcode 批次處理條碼?

是的,IronBarcode 支援利用多核心多執行緒進行批次處理,這對於需要大量條碼處理的伺服器端應用程式來說尤其有用。

IronBarcode可以在哪些平台上使用?

IronBarcode 相容於 .NET Framework 和 .NET Core,支援 32 位元和 64 位元架構。它可用於 PC 和行動平台上的控制台應用程式、桌面應用程式、雲端服務和線上應用程式。

為什麼影像預處理在條碼生成中很重要?

影像預處理至關重要,因為它能糾正旋轉、雜訊、失真和傾斜等問題,從而提高條碼讀取的精確度和速度,確保高品質的條碼產生和識別。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。