zoukankan      html  css  js  c++  java
  • 利用Aspose.BarCode生成条码

    生成条码有很多控件,大部分好的控件,做出来的条码精确清晰,但是往往该部分的控件费用都很高,这里推荐大家使用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);  //将二维码图片 打印出来,缩放

    结构图:

    测试结果(其他格式条码类似):

    分享共进步,谢谢阅读。

  • 相关阅读:
    【BZOJ 3090】 树形DP
    【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)
    【BZOJ 1019】 1019: [SHOI2008]汉诺塔 (DP?)
    【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
    【BZOJ 3566】 3566: [SHOI2014]概率充电器 (概率树形DP)
    【BZOJ 2121】 (字符串DP,区间DP)
    【BZOJ 4305】 4305: 数列的GCD (数论)
    【UOJ 179】 #179. 线性规划 (单纯形法)
    【BZOJ 4568】 4568: [Scoi2016]幸运数字 (线性基+树链剖分+线段树)
    【BZOJ 4027】 4027: [HEOI2015]兔子与樱花 (贪心)
  • 原文地址:https://www.cnblogs.com/imyao/p/5632079.html
Copyright © 2011-2022 走看看