生成條碼有很多控件,大部分好的控件,做出來的條碼精確清晰,但是往往該部分的控件費用都很高,這里推薦大家使用6.0版本的破解版,可以生成無水印,下方也可以不顯示文字。
1、下圖是 onbarcode 控件,的費用圖,取自官網。
2、下圖是 Aspose.BarCode for .NET 的官網費用
總結:這些控件可以使用,因為需要付費。給免費使用的,條碼中夾雜水印,可見,好的控件都是比較難獲取的。
今天使用 Aspose.BarCode for .NET 6.0 來生成各種的二維碼(這里只介紹PDF417碼生成,其他更簡單且類似)
下圖是最簡單的返回Bitmap格式的方法,可以調用:
public static Bitmap CreateBitmap() { // ExStart:CreatePDF417Barcode // The path to the documents directory. // string dataDir = RunExamples.GetDataDir_ManageBarCodes(); //// Instantiate BarCodeBuilder object //BarCodeBuilder barCodeBuilder = new BarCodeBuilder(); //barCodeBuilder.CodeText = "ffffffffffffffffffffffi"; // Set the Code text for the barcode //barCodeBuilder.SymbologyType = Symbology.Code128; // Set the SymbologyType for the barcode BarCodeBuilder barCodeBuilder = new BarCodeBuilder("ffffffffffffffffffffffi", Symbology.Code128); //上三行,和該行效果相同 return barCodeBuilder.GenerateBarCodeImage(); // Save file to disk //barCodeBuilder.Save(dataDir + "pdf417-barcode_out.jpg", BarCodeImageFormat.Jpeg); }
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
實際中,我們創建一個項目,通過一個按鈕,在 pictureBox1 中顯示二維碼,代碼如下
private void button1_Click(object sender, EventArgs e) { // Instantiate barcode object BarCodeBuilder barCodeBuilder = new BarCodeBuilder(); // Set Barcode Symbology barCodeBuilder.SymbologyType = Symbology.Pdf417; barCodeBuilder.CodeTextSpace = 1; //二維碼下方文字與圖形的距離,我們也可以不要文字 // set Pdf417 Error correction level barCodeBuilder.Pdf417ErrorLevel = Pdf417ErrorLevel.Level8; // Set Pdf417 Compaction Mode to Text barCodeBuilder.Pdf417CompactionMode = Pdf417CompactionMode.Text; // set CodeText for barcode barCodeBuilder.CodeText = "1234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C01234512345678901234567890678E9C0"; //帶下方顯示文字 //this.pictureBox1.Width = (int)barCodeBuilder.ImageWidth + 100; //顯示大小,長寬 //this.pictureBox1.Height = (int)barCodeBuilder.ImageHeight; //barCodeBuilder.Save(@"C:\AA.bmp", BarCodeImageFormat.Bmp); //以圖片形式生成,保存本地 this.pictureBox1.Image = barCodeBuilder.GenerateBarCodeImage(); // GenerateBarCodeImage 創建圖片,下方顯示文字信息 //this.pictureBox1.Image = barCodeBuilder.GetOnlyBarCodeImage(); //不顯示下方文字,僅僅顯示圖片,對於非破解版,該步不行
}
同樣的,也可以利用到PrintDocument之中,我們將Bitmap以圖片格式進行壓縮或者放大顯示,如下:
// Instantiate barcode object BarCodeBuilder barCodeBuilder = new BarCodeBuilder(); // Set Barcode Symbology barCodeBuilder.SymbologyType = Symbology.Pdf417; barCodeBuilder.CodeTextSpace = 2; //文字與圖形的距離 // set Pdf417 Error correction level barCodeBuilder.Pdf417ErrorLevel = Pdf417ErrorLevel.Level8; //校驗等級 // Set Pdf417 Compaction Mode to Text barCodeBuilder.Pdf417CompactionMode = Pdf417CompactionMode.Text; // set CodeText for barcode barCodeBuilder.CodeText = pdf417_text; ///barCodeBuilder.Save(@"C:\AA.png", BarCodeImageFormat.Png); //以圖片形式生成 //Bitmap bitmap = barCodeBuilder.GenerateBarCodeImage(); //獲取Bitmap圖片格式, 下方帶文字,對於小型二維碼是很好的顯示 Bitmap bitmap = barCodeBuilder.GetOnlyBarCodeImage(); //獲取Bitmap圖片格式, barCodeBuilder.GetOnlyBarCodeImage e.Graphics.DrawImage(bitmap, 20, 35, 140, 80); //將二維碼圖片 打印出來,縮放
結構圖:
測試結果(其他格式條碼類似):
分享共進步,謝謝閱讀。