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>";
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;
}
您好:
請問
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程式,由他印出嗎?
謝謝
會變成兩頁的問題大部份起因於你的設備可列印範圍,比如A4,大部份的事務機都要留左右上下邊界不可印滿,邊界寬度要看設備定義而定,大概都在8mm左右,那就是說A4最寬你只能設定到210-8*2 = 194mm,且你不能任由列印的字串長度超過這個範圍,必要的話讓字串不可自動延伸寬高,不然會有大麻煩
japhenchen您好:
方便先請教一下,若用表格排版
我想要以qrcode 內容,當作KEY 分頁,但又不想要先秀出來(因為想要另外再拉一個欄位 放qrcode 內容當作調碼來源)
其他的欄位會跟著KEY 分頁,
這要如何做呢?
謝謝
japhenchen您好:
另外 您==>QRCODE你可以透過nuget安裝GMA QRCODE套件
這是在C# 嗎?
不是 RDLC 報表產生?
謝謝
japhenchen您好:
目前 我是用年代久遠的套裝軟體
RELC 是用軟體的精靈跑出,不知從哪 作CODE
且目前只零星幾個報表,都是直接抓DB的欄位呈現
japhenchen 您好
目前不清出要如何將圖檔(多張不同序號) 傳給rdlc,因為使用套裝軟體,RDLC 包在內;
目前由前端JS傳參數到 C#後端,C# 透過PROCEDURE取得SQL 資料 (dataSet)傳給 RDLC,RDLC 呈現資料
所以找不到地方傳遞方式
謝謝
RDLC可以接收由程式發送過來的DATASOURCE,DATASOURCE裡就可以嵌入QRCODE所產生的IMAGE BYTE[],在RDLC設計畫面裡就把IMAGE指向該欄位即可
japhenchen您好:
謝謝您
目前是有先參考 ThoughtWorks.QRCode.Codec;
但這好像沒有 圖片大小
且目前遇到 電腦上的PDF 可以用掃描槍掃出
但印出標籤卻 無法掃...
1.如何作到 用標籤機印出的
=>請別使用報表請查看每台標籤機sdk都是用epson command
2.QRCODE 適用網站API作嗎?
=>使用標籤機直接使用epson command .
=>不使用epson command 自己寫qrcode圖檔再傳給rdlc顯示.
以上請參考嘍!