您好:请问C# 如何用RDLC
1.如何作到 用标籤机印出的2.QRCODE 适用网站API作吗?
目前 我RDLC 产出PDF 预设8宽*5高,PDF 是一张标籤+一行横向字但用TSC TTP-245标籤机印出来却是印出两张标籤,一行字垂直 跨两张标籤谢谢
一般用WORD 印8*5,是OK的
4 个回答
- 旧至新
- 新至旧
- 最高Like数
0
japhenchen
iT邦超人 1 级 ‧ 2024-10-25 07:19:19
最佳解答
WEB版的RDLC只能输出成HTML或PDF或WORD,这些软体或浏览器对标籤纸机控不灵光,除非你改输出成自己设定的专属档案格式,输出至你预先安装在客户端的电脑上的程式(用MimeType绑定),由该程式负责转印到标籤机,标籤输出必要的话预先宣告DeviceInfo避免设备输出尺寸不正确
private string deviceInfo =
@"<DeviceInfo>
<OutputFormat>EMF</OutputFormat>
<PageWidth>120mm</PageWidth>
<PageHeight>65mm</PageHeight>
<MarginTop>5mm</MarginTop>
<MarginLeft>5mm</MarginLeft>
<MarginRight>5mm</MarginRight>
<MarginBottom>5mm</MarginBottom>
</DeviceInfo>";
-
9 -
-
看更多先前的...收起先前的...
japhenchen
iT邦超人 1 级 ‧
2024-10-25 07:36:50
noway
QRCODE你可以透过nuget安装GMA QRCODE套件
private Bitmap generateQR(string codeString)
{
double logoAtQRRatio = 0.30;
string logopath = Server.MapPath("/event/QRLOGO.png");
Bitmap logo = new Bitmap(logopath);
int logowidth = logo.Width;
int logoheight = logo.Height;
double logoRatio = logoheight / logowidth;
/*
Level L (Low) 7% of codewords can be restored.
Level M (Medium) 15% of codewords can be restored.
Level Q (Quartile) 25% of codewords can be restored.
Level H (High) 30% of codewords can be restored.
*/
QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.Q);
//编码
QrCode code = encoder.Encode(codeString);
//定义线条宽度
int moduleSizeInPixels = 8;
int topGap = 0;// moduleSizeInPixels * 3;
//绘二维条码图初始化
GraphicsRenderer renderer = new GraphicsRenderer(
new FixedModuleSize(moduleSizeInPixels, QuietZoneModules.Two), Brushes.Black, Brushes.White);
//留白区大小
int paddinggap = moduleSizeInPixels;
Point padding = new Point(paddinggap, topGap + paddinggap);
//取得条码图大小
DrawingSize dSize = renderer.SizeCalculator.GetSize(code.Matrix.Width);
int imgWidth = dSize.CodeWidth + 2 * padding.X;
int imgHeight = dSize.CodeWidth + 2 * padding.Y ;
int shiftY = dSize.CodeWidth + 2 * padding.Y + 3;
//设定影像大小
float newlogoW = imgWidth;// (int)Math.Round((double)imgWidth * logoAtQRRatio);
float newlogoH = (float)newlogoW * ((float)logoheight /logowidth);
RectangleF rectLogo =
new RectangleF(0, shiftY, newlogoW, newlogoH);
Bitmap img = new Bitmap(imgWidth, imgHeight);
//绘製二维条码图
Graphics g = Graphics.FromImage(img);
//g.FillRectangle(Brushes.Black, new Rectangle(0, 0, img.Width, img.Height));
return img;
}
//编码
QrCode code = encoder.Encode(codeString);
//定义线条宽度
int moduleSizeInPixels = 8;
int topGap = 0;// moduleSizeInPixels * 3;
//绘二维条码图初始化
GraphicsRenderer renderer = new GraphicsRenderer(
new FixedModuleSize(moduleSizeInPixels, QuietZoneModules.Two), Brushes.Black, Brushes.White);
//留白区大小
int paddinggap = moduleSizeInPixels;
Point padding = new Point(paddinggap, topGap + paddinggap);
//取得条码图大小
DrawingSize dSize = renderer.SizeCalculator.GetSize(code.Matrix.Width);
int imgWidth = dSize.CodeWidth + 2 * padding.X;
int imgHeight = dSize.CodeWidth + 2 * padding.Y ;
int shiftY = dSize.CodeWidth + 2 * padding.Y + 3;
//设定影像大小
float newlogoW = imgWidth;// (int)Math.Round((double)imgWidth * logoAtQRRatio);
float newlogoH = (float)newlogoW * ((float)logoheight /logowidth);
RectangleF rectLogo =
new RectangleF(0, shiftY, newlogoW, newlogoH);
Bitmap img = new Bitmap(imgWidth, imgHeight);
//绘製二维条码图
Graphics g = Graphics.FromImage(img);
//g.FillRectangle(Brushes.Black, new Rectangle(0, 0, img.Width, img.Height));
return img;
}
```
修改
noway
iT邦研究生 1 级 ‧
2024-10-25 08:05:58
您好:
请问
1.您之前回覆于
https://ithelp.ithome.com.tw/questions/10204540?sc=pt
他是产生PDF档吗?
我看您,开发6.5×2.5cm ,您开发的版面很大,
但我开发,要缩到很小,(主体有设8*5 了),但一页仍会自动跳成2页
输出至你预先安装在客户端的电脑上的程式(用MimeType绑定),由该程式负责转印到标籤机
一般WEB 与 PC端的驱动及硬体不连通,所以之前都是转PDF印出报表
那您说的MimeType,是需要自己另外写程式在PC上,WEB 去呼叫 PC上的MimeType程式,由他印出吗?
谢谢
我看您,开发6.5×2.5cm ,您开发的版面很大,
但我开发,要缩到很小,(主体有设8*5 了),但一页仍会自动跳成2页
2.
输出至你预先安装在客户端的电脑上的程式(用MimeType绑定),由该程式负责转印到标籤机
一般WEB 与 PC端的驱动及硬体不连通,所以之前都是转PDF印出报表
那您说的MimeType,是需要自己另外写程式在PC上,WEB 去呼叫 PC上的MimeType程式,由他印出吗?
谢谢
修改
japhenchen
iT邦超人 1 级 ‧
2024-10-25 08:16:41
会变成两页的问题大部份起因于你的设备可列印範围,比如A4,大部份的事务机都要留左右上下边界不可印满,边界宽度要看设备定义而定,大概都在8mm左右,那就是说A4最宽你只能设定到210-8*2 = 194mm,且你不能任由列印的字串长度超过这个範围,必要的话让字串不可自动延伸宽高,不然会有大麻烦
修改
noway
iT邦研究生 1 级 ‧
2024-10-25 16:47:26
japhenchen您好:
方便先请教一下,若用表格排版
我想要以qrcode 内容,当作KEY 分页,但又不想要先秀出来(因为想要另外再拉一个栏位 放qrcode 内容当作调码来源)
其他的栏位会跟着KEY 分页,
这要如何做呢?
谢谢
其他的栏位会跟着KEY 分页,
这要如何做呢?
谢谢

修改
noway
iT邦研究生 1 级 ‧
2024-10-28 08:54:36
japhenchen您好:
另外 您==>QRCODE你可以透过nuget安装GMA QRCODE套件
这是在C# 吗?
不是 RDLC 报表产生?
谢谢
修改
noway
iT邦研究生 1 级 ‧
2024-10-29 15:57:35
japhenchen您好:
目前 我是用年代久远的套装软体
RELC 是用软体的精灵跑出,不知从哪 作CODE
且目前只零星几个报表,都是直接抓DB的栏位呈现
修改
noway
iT邦研究生 1 级 ‧
2024-10-30 08:43:18
japhenchen 您好
目前不清出要如何将图档(多张不同序号) 传给rdlc,因为使用套装软体,RDLC 包在内;
目前由前端JS传参数到 C#后端,C# 透过PROCEDURE取得SQL 资料 (dataSet)传给 RDLC,RDLC 呈现资料
所以找不到地方传递方式
谢谢
目前不清出要如何将图档(多张不同序号) 传给rdlc,因为使用套装软体,RDLC 包在内;
目前由前端JS传参数到 C#后端,C# 透过PROCEDURE取得SQL 资料 (dataSet)传给 RDLC,RDLC 呈现资料
所以找不到地方传递方式
谢谢
修改
japhenchen
iT邦超人 1 级 ‧
2024-11-01 08:23:28
RDLC可以接收由程式发送过来的DATASOURCE,DATASOURCE里就可以嵌入QRCODE所产生的IMAGE BYTE[],在RDLC设计画面里就把IMAGE指向该栏位即可
修改
noway
iT邦研究生 1 级 ‧
2024-11-01 13:27:01
japhenchen您好:
谢谢您
目前是有先参考 ThoughtWorks.QRCode.Codec;
但这好像没有 图片大小
且目前遇到 电脑上的PDF 可以用扫描枪扫出
但印出标籤却 无法扫...
修改
0
pilipala
iT邦研究生 5 级 ‧ 2024-10-25 08:23:33
重新跑看看标籤机纸张侦测,提供相片感觉一次出两张纸,也许不见得是 RDLC 报表问题
0
souda
iT邦高手 1 级 ‧ 2024-10-27 20:35:51
1.如何作到 用标籤机印出的
=>请别使用报表请查看每台标籤机sdk都是用epson command
2.QRCODE 适用网站API作吗?
=>使用标籤机直接使用epson command .
=>不使用epson command 自己写qrcode图档再传给rdlc显示.
以上请参考喽!
0
wilson1966
iT邦研究生 1 级 ‧ 2024-11-04 11:47:05
*已删除