社区
C#
帖子详情
RDLC如何打印若干个内存中的图片
CSharpEx
2009-06-10 11:54:05
RDLC如何打印若干个内存中的图片
图片很多,不允许在本地硬盘缓存
...全文
146
12
打赏
收藏
RDLC如何打印若干个内存中的图片
RDLC如何打印若干个内存中的图片 图片很多,不允许在本地硬盘缓存
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CSharpEx
2009-06-17
打赏
举报
回复
没有什么满意的结果
CSharpEx
2009-06-15
打赏
举报
回复
寻求解决办法
cnming
2009-06-15
打赏
举报
回复
要不使用PrintDocument
CSharpEx
2009-06-13
打赏
举报
回复
up
周药师
2009-06-11
打赏
举报
回复
帮顶
zlb789
2009-06-11
打赏
举报
回复
关注
yanm7788
2009-06-11
打赏
举报
回复
UP
cnming
2009-06-11
打赏
举报
回复
把图片存入一个DataSet中
cnming
2009-06-11
打赏
举报
回复
1.条码的生成:
private Bitmap GetCode39(string strSource)
{
int x = 5; //左邊界
int y = 0; //上邊界
int WidLength = 2; //粗BarCode長度
int NarrowLength = 1; //細BarCode長度
int BarCodeHeight = 24; //BarCode高度
int intSourceLength = strSource.Length;
string strEncode = "010010100"; //編碼字串 初值為 起始符號 *
string AlphaBet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*"; //Code39的字母
string[] Code39 = //Code39的各字母對應碼
{
/**//* 0 */ "000110100",
/**//* 1 */ "100100001",
/**//* 2 */ "001100001",
/**//* 3 */ "101100000",
/**//* 4 */ "000110001",
/**//* 5 */ "100110000",
/**//* 6 */ "001110000",
/**//* 7 */ "000100101",
/**//* 8 */ "100100100",
/**//* 9 */ "001100100",
/**//* A */ "100001001",
/**//* B */ "001001001",
/**//* C */ "101001000",
/**//* D */ "000011001",
/**//* E */ "100011000",
/**//* F */ "001011000",
/**//* G */ "000001101",
/**//* H */ "100001100",
/**//* I */ "001001100",
/**//* J */ "000011100",
/**//* K */ "100000011",
/**//* L */ "001000011",
/**//* M */ "101000010",
/**//* N */ "000010011",
/**//* O */ "100010010",
/**//* P */ "001010010",
/**//* Q */ "000000111",
/**//* R */ "100000110",
/**//* S */ "001000110",
/**//* T */ "000010110",
/**//* U */ "110000001",
/**//* V */ "011000001",
/**//* W */ "111000000",
/**//* X */ "010010001",
/**//* Y */ "110010000",
/**//* Z */ "011010000",
/**//* - */ "010000101",
/**//* . */ "110000100",
/**//*' '*/ "011000100",
/**//* $ */ "010101000",
/**//* / */ "010100010",
/**//* + */ "010001010",
/**//* % */ "000101010",
/**//* * */ "010010100"
};
strSource = strSource.ToUpper();
//實作圖片
Bitmap objBitmap = new Bitmap(((WidLength * 3 + NarrowLength * 7) * (intSourceLength + 2)) + (x * 2), BarCodeHeight + (y * 2));
Graphics objGraphics = Graphics.FromImage(objBitmap);
//宣告GDI+繪圖介面
//填上底色
objGraphics.FillRectangle(Brushes.White, 0, 0, objBitmap.Width, objBitmap.Height);
for (int i = 0; i < intSourceLength; i++)
{
//檢查是否有非法字元
if (AlphaBet.IndexOf(strSource[i]) == -1 || strSource[i] == '*')
{
objGraphics.DrawString("含有非法字元", SystemFonts.DefaultFont, Brushes.Red, x, y);
return objBitmap;
}
//查表編碼
strEncode = string.Format("{0}0{1}", strEncode, Code39[AlphaBet.IndexOf(strSource[i])]);
}
strEncode = string.Format("{0}0010010100", strEncode);
//補上結束符號 *
int intEncodeLength = strEncode.Length;
//編碼後長度
int intBarWidth;
for (int i = 0; i < intEncodeLength; i++)
//依碼畫出Code39 BarCode
{
intBarWidth = strEncode[i] == '1' ? WidLength : NarrowLength;
objGraphics.FillRectangle(i % 2 == 0 ? Brushes.Black : Brushes.White, x, y, intBarWidth, BarCodeHeight); x += intBarWidth;
}
return objBitmap;
}
2.生成条码图片
MemoryStream oStream2 = new MemoryStream();
try
{
Bitmap oBmp2 = GetCode39(goodsNum);
oBmp2.Save(oStream2, System.Drawing.Imaging.ImageFormat.Png);
//图片路径
oBmp2.Save(url + goodsName + ".png", System.Drawing.Imaging.ImageFormat.Png);
oBmp2.Dispose();
}
finally
{
oStream2.Dispose();
}
3.读取条码图片转化为二进制流
FileStream file = new FileStream(url + freightBill + ".png", FileMode.Open, FileAccess.Read);
Byte[] bytGoodsCode = new Byte[file.Length];
file.Read(bytGoodsCode, 0, bytGoodsCode.Length);
file.Close();
4.将条码图片保存进数据库
5.将条码图片在报表上显示出来:
在报表上拖放一个image图像控件,Source设置为DataBase(External为嵌入图片,Embedded为外部图片),Value 选择条码字段,设置MIMEType属性。
这样就能看见报表上面的图片了。
注:本来数据库存放条码图片的URL,但是在报表上用Embedded显示图片的时候,给image控件绑定了条码图片的URL值,但是运行图片显示不出,image控件的SRC="";还没有找到问题。
CSharpEx
2009-06-11
打赏
举报
回复
up
修改一下昵称
2009-06-11
打赏
举报
回复
帮顶 。up...ing
RDLC
系列之七 条码
打印
本文介绍了一种使用C#实现的
RDLC
报表条码标签
打印
方法,通过将条码数据保存到数据库并利用barcodelib.dll生成条码
图片
,最终在
RDLC
报表
中
动态展示。
在c# winform项目
中
使用
RDLC
Report实现标签
打印
,在A4纸上铺满,如何实现?
本文详细介绍了在C# WinForm项目
中
使用
RDLC
报表技术实现标签
打印
的方法。内容包括项目结构搭建、数据模型定义、条码生成器类创建、
RDLC
报表设计、WinForm界面实现以及标签尺寸计算和布局优化。同时,还探讨了可能遇到的技术问题和解决方案,如条码生成性能问题、
内存
泄漏问题、报表渲染失败和
打印
质量问题,并提供了性能优化策略。最后,文章总结了该技术方案的核心技术要点、关键实现细节、技术优势和应用价值。
C# 报表系统
打印
几种方法
本文介绍了如何在C#
中
使用
RDLC
报表创建数据源,详细步骤包括选择数据库驱动、设置数据源、连接数据库、选择表,并强调了PrintDocument控件在
打印
过程
中
的作用,特别是printPage事件用于定义
打印
内容。
将图像作为一个
内存
流输出到.NET ReportViewer报表里(
RDLC
文件)
博客介绍了数字生成条形码图像的方法,使用zxing框架可生成二维码和条形码。还提及将图像转换为Base64编码,以及
rdlc
文件调用64位编码显示在页面上的操作,包括参数传递、编码转化和
RDLC
文件属性设置等内容。
C#集成Bartender:动态
图片
标签
打印
的实战与避坑指南
本文详解C#通过COM接口调用BarTender实现动态
图片
标签
打印
的全流程:包括Bartender模板
中
具名数据源与
图片
对象绑定、基础路径与对象命名规范;C#端添加COM引用、SetNamedSubStringValue传值、资源释放与异常处理;重点解析
图片
不显示、COM初始化失败、
内存
泄漏等高频问题及调试技巧,涵盖网络/
内存
图片
落地、模板部署与多
打印
机适配等工程实践。
C#
111,132
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章