[C#] BarcodeLib -- 一個精簡而不失優雅的條碼產生庫

來源:互聯網
上載者:User

標籤:關鍵字   位元影像   應該   ons   one   允許   color   black   har   

BarcodeLib -- 一個精簡而不失優雅的條碼產生庫

 

引言

  在百度進行“C# 條碼”等類似關鍵字搜尋的時候,基本上是使用 ZXing 類庫進行條碼的產生。今天我所介紹的是另一款類庫 Barcode,一起來共同見證它的強大之處。

 

目錄
  • 插曲
  • 官方介紹
  • Nuget 安裝
  • 支援的類型
  • 簡單使用

 

插曲

  請先允許我娓娓道來一個淒美的故事。

  有一對情侶,男的非常懦弱,做什麼事情之前都讓女友先試。女友對此十分不滿。一次,兩人出海,返航時,颶風將小艇摧毀,幸虧女友抓住了一塊木板才保住了兩人的性命。女友問男友:“你怕嗎?”男友從懷中掏出一把水果刀,說:“怕,但有鯊魚來,我就用這個對付它。”女友只是搖頭苦笑。不久,一艘貨輪發現了他們,正當他們欣喜若狂時,一群鯊魚出現了,女友大叫:“我們一起用力遊,會沒事的!”男友卻突然用力將女友推進海裡,扒著木板朝貨輪遊去,並喊道:“這次我先試!”女友驚呆了,望著男友的背影,感到非常絕望。鯊魚正在靠近,可鯊魚對女友不感興趣而徑直向男友遊去,男友被鯊魚兇猛地撕咬著,他發瘋似地沖女友喊道:“我愛你!”女友獲救了,甲板上的人都在默哀,船長坐到女友身邊說:“小姐,他是我見過最勇敢的人。我們為他祈禱!”“不,他是個膽小鬼。”女友冷冷地說。“您怎麼這樣說呢?剛才我一直用望遠鏡觀察你們,我清楚地看到他把你推開後用刀子割破了自己的手腕。鯊魚對血腥味很敏感,如果他不這樣做來爭取時間,恐怕你永遠不會出現在這艘船上。”“什嗎?”女友聽到真相如同晴天霹靂,她悲痛欲絕,傷心無比,但她突然想到男友是學C#的。只有學C#的程式員才有這麼高的覺悟, C#是目前使用最為廣泛的網路程式設計語言之一,它具有簡單,物件導向,穩定,與平台無關,多線程,動態等特點。學C#的同學品質優異,有強大的博學雅正融合的意識,並具備強大的心理承受能力,人文情懷,領袖氣質,個個都是老師的好助手,同學的好夥伴。選擇C#,就是選擇成功!(來源於互連網)

 

官方介紹
  • 在ASP.NET,Windows,Reporting Service,Crystal Reports 和 RDLC Reports應用程式中輕鬆產生條碼
  • 產生準確的條碼映像,並可以儲存為 C# 和 VB.NET 類中的 JPEG,GIF 或 PNG 影像檔
  • 相容 C# 和 VB.NET
  • 由 .NET 程式員廣泛使用
  • 符合最新的條碼符號體系標準,如 ISO / IEC,GS1
  • 建立線性條碼,包括 Code39,Code128,GS1-128,Interleaved 2 of 5,EAN / UPC
  • 建立 2d 條碼映像,包括資料矩陣,PDF-417 和 QR 代碼

 

Nuget 安裝

 

支援的類型

  類型很多,這裡示範使用的是 TYPE.CODE128B。

    public enum TYPE    {        UNSPECIFIED = 0,        UPCA = 1,        UPCE = 2,        UPC_SUPPLEMENTAL_2DIGIT = 3,        UPC_SUPPLEMENTAL_5DIGIT = 4,        EAN13 = 5,        EAN8 = 6,        Interleaved2of5 = 7,        Standard2of5 = 8,        Industrial2of5 = 9,        CODE39 = 10,        CODE39Extended = 11,        CODE39_Mod43 = 12,        Codabar = 13,        PostNet = 14,        BOOKLAND = 15,        ISBN = 16,        JAN13 = 17,        MSI_Mod10 = 18,        MSI_2Mod10 = 19,        MSI_Mod11 = 20,        MSI_Mod11_Mod10 = 21,        Modified_Plessey = 22,        CODE11 = 23,        USD8 = 24,        UCC12 = 25,        UCC13 = 26,        LOGMARS = 27,        CODE128 = 28,        CODE128A = 29,        CODE128B = 30,        CODE128C = 31,        ITF14 = 32,        CODE93 = 33,        TELEPEN = 34,        FIM = 35,        PHARMACODE = 36    }

 

簡單使用

  Barcode 是核心類,它擁有 3 個建構函式,並且它實現了 IDisposable 介面,所以我們應該使用 uisng 關鍵字在執行完畢後進行資源的釋放。

        public Barcode();        public Barcode(string data);        public Barcode(string data, TYPE iType);

 

  Encode() 是用來進行編碼操作的方法,調用完畢後會產生一張位元影像。

        public Image Encode(TYPE iType, string StringToEncode);        public Image Encode(TYPE iType, string StringToEncode, Color ForeColor, Color BackColor);        public Image Encode(TYPE iType, string StringToEncode, int Width, int Height);        public Image Encode(TYPE iType, string StringToEncode, Color ForeColor, Color BackColor, int Width, int Height);

 

  當然,它也內建了對應的儲存到檔案中的方法 SaveImage。

        public void SaveImage(string Filename, SaveTypes FileType);        public void SaveImage(Stream stream, SaveTypes FileType);

 

  預設支援儲存的檔案類型:

    public enum SaveTypes    {        JPG = 0,        BMP = 1,        PNG = 2,        GIF = 3,        TIFF = 4,        UNSPECIFIED = 5    }

 

  這是一個較為簡單的用法:

        /// <summary>        /// 產生條碼        /// </summary>        /// <param name="content">內容</param>        /// <returns></returns>        public static Image GenerateBarCodeBitmap(string content)        {            using (var barcode = new Barcode()            {                IncludeLabel = true,                Alignment = AlignmentPositions.CENTER,                Width = 250,                Height = 100,                RotateFlipType = RotateFlipType.RotateNoneFlipNone,                BackColor = Color.White,                ForeColor = Color.Black,            })            {                return barcode.Encode(TYPE.CODE128B, content);            }        }

  【備忘】我在 IncludeLabel 屬性中對它進行了賦值 true 操作。如果不進行參數指定的話,就只能夠產生條碼,而不會在底部顯示資料。

  你也可以進入 http://www.fanguzai.net/#/code 自己手動進行測試。

 

 

【博主】反骨仔

【原文】http://www.cnblogs.com/liqingwen/p/6876392.html

【參考】https://www.codeproject.com/Articles/20823/Barcode-Image-Generation-Library

 

[C#] BarcodeLib -- 一個精簡而不失優雅的條碼產生庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.