RDLC系列之七 條碼打印


參考:

C# 條碼標簽打印程序,RDLC報表動態顯示多條碼標簽的方法

http://www.cnblogs.com/vice/p/4105898.html

 

我做的思路是:不使用數據庫存儲image的byte[]數據,而是首先將所有需要的條碼數據保存到一個數據庫表中,然后在需要將條碼顯示到RDLC報表中時,取得表中的條碼數據,然后創建數據集(用於存儲報表中需要用到的所有數據),再將每條條碼數據用barcodelib.dll生成條碼對象,返回image對象,再使用下面方法將返回的image對象轉換為byte[]數組存入新建的數據集中。

 

其他代碼就不貼了,因為好多東西都沒封裝都是碼上去的,太長了。

復制代碼
1        //image對象轉byte數組
2         public static byte[] ImageToBytes(Image img)
3         {
4             ImageConverter imgconv = new ImageConverter();
5             byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[]));
6             return b;
7         }
復制代碼

 

然后在RDLC中創建模板,添加數據源為剛剛創建的數據集,插入圖片對象,圖像源選擇數據庫,”使用此字段“ 輸入 System.Convert.ToBase64String(Fields!存儲image對象的byte[]列名.Value)

 

 

方法二:直接在后台字段中先轉換為Base64字符串

System.Convert.ToBase64String(ImageToBytes(image));

 

barcodelib.dll的調用方法封裝

 

注意:

建議image流直接獲取條碼生成的圖片流,即從內存讀取。

此外,RDLC圖片屬性的大小,要設置為原始大小(第一個選項),否則部分掃描槍不能掃描,因為條碼圖片被自動拉升而變形。

 

如果使用圖片文件,可能導致不清晰,如下

 Image img = Image.FromFile(path);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM