iT邦幫忙

0

C# WEB 使用 RDLC 如何開發QRCODE 標籤

  • 分享至 

  • xImage

您好:
請問C# 如何用RDLC

1.如何作到 用標籤機印出的
2.QRCODE 適用網站API作嗎?

目前 我RDLC 產出PDF 預設8寬*5高,PDF 是一張標籤+一行橫向字
但用TSC TTP-245標籤機印出來卻是
印出兩張標籤,一行字垂直 跨兩張標籤
謝謝

一般用WORD 印8*5,是OK的

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
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>";
看更多先前的回應...收起先前的回應...

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;
 }
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程式,由他印出嗎?

謝謝

會變成兩頁的問題大部份起因於你的設備可列印範圍,比如A4,大部份的事務機都要留左右上下邊界不可印滿,邊界寬度要看設備定義而定,大概都在8mm左右,那就是說A4最寬你只能設定到210-8*2 = 194mm,且你不能任由列印的字串長度超過這個範圍,必要的話讓字串不可自動延伸寬高,不然會有大麻煩

noway iT邦研究生 1 級 ‧ 2024-10-25 16:47:26 檢舉

japhenchen您好:
方便先請教一下,若用表格排版
我想要以qrcode 內容,當作KEY 分頁,但又不想要先秀出來(因為想要另外再拉一個欄位 放qrcode 內容當作調碼來源)

其他的欄位會跟著KEY 分頁,
這要如何做呢?
謝謝

https://ithelp.ithome.com.tw/upload/images/20241025/20104095Bmt6i7sbVL.png

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 呈現資料

所以找不到地方傳遞方式
謝謝

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顯示.

以上請參考嘍!

我要發表回答

立即登入回答