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顯示.
以上請參考嘍!