2016-10-04

[ASP.NET] 列印標籤紙

最近做了一個 WinForm 程式,提供給供應商列印標籤紙,內容包含了 QRCode、二維條碼、以及一些產品資訊,如下圖:

其中的 QRCode 和二維條碼是參考了 Zxing 元件,簡單範例如下:
private Image GetQRCode(string sText)
{
    // 定義產出是QR Code,Code128 就是 BarcodeFormat.CODE_128
    var writer = new BarcodeWriter(); 
    writer.Format = BarcodeFormat.QR_CODE;
 
    // 定義長寛
    writer.Options.Height = 82;
    writer.Options.Width = 82;
 
    return (Image)writer.Write("轉QRcode的文字");
}


列印方面是使用 .NET 內建的 PrintDocument 元件的 PrintPage Method,透過這個 Method 來定義每個文字、圖片在紙張上的位置、何時換頁、以及紙張的大小:
// 定義紙張大小
this.printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("tim", 230, 200);
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    // 產生文字:以第一行文字 PART NUMBER 為例
    g.DrawString("PART NUMBER : 22312216", new Font("新細明體", 8), Brushes.Black, new RectangleF(10, 10, 230, 200), new StringFormat());

    // 產生二維條碼
    e.Graphics.DrawImage(GetCode128("二維條碼的文字"), 10, 165, 200, 25);

    // 產生QRCode
    e.Graphics.DrawImage(GetQRCode("QRCode的文字"), 135, 60, 82, 82);

    // 重要!! e.HasMorePages=true 代表這個 Method 會再執行一次,也就是如果要印很多張時就要用到它
    if (判斷是否還有資料需要印到下一頁)
       e.HasMorePages = true;
    else
    {
       // 印下一頁的中斷點,一定要有! 否則會無限列印下去
       e.HasMorePages = false;
    }
}

然後可以使用預覽列印功能先確定印出的內容,使用 .NET 的 PrintPreviewDialog 元件:
// 先指定印的內容是PrintDocument
this.printPreviewDialog1.Document = this.printDocument1;

// 預覽列印
this.printPreviewDialog1.ShowDialog();

正式列印一樣使用 .NET 元件,叫做 PrintDialog:
// 先指定印的內容是PrintDocument
this.printDialog1.Document = this.printDocument1;
if (this.printDialog1.ShowDialog() == DialogResult.OK)
{
    // 列印
    this.printDocument1.Print();
}
附上SampleCode

參考來源:開發頻道

33 則留言:

  1. 不好意思!!
    方便提供Sample Code讓我參考嗎?
    最近在寫標籤用的程式,發現版大的文章及範例和我的需求很像!!

    回覆刪除
    回覆
    1. 請留下你的email,我可以寄給你參考。

      刪除
  2. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: fostermeng(at)gmail.com
    感謝您~

    回覆刪除
  3. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: sophiacash001@gmail.com
    感謝您~

    回覆刪除
  4. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: kevin@onlinego.tw
    感謝您~

    回覆刪除
  5. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: terry77831@hotmail.com
    感謝您~

    回覆刪除
  6. 您好,不好意思,最近我也有這方面的需求
    若方便,還請您提供Sample Code參考
    E-Mail:sunshine5948761@gmail.com
    辛苦了,謝謝!

    回覆刪除
  7. 提姆大您好,請問方便寄給我Sample Code參考嗎?
    E-Mail: cokeburberry@gmail.com
    感謝您~

    回覆刪除
  8. 提姆大大您好:我目前也有這個需求,是否可以請您寄Sample Code給我參考!!
    EMAIL: momo.kst@gmail.com
    謝謝您!!

    回覆刪除
  9. 您好,可否方便也提供SourceCode給我參考呢?
    E-Mail: andrewdsc(at)gmail.com
    感謝您~

    回覆刪除
  10. 您好,最近也有這方面的需求
    若方便,請您提供Sample Code參考
    E-Mail:johnlin1887@gmail.com
    謝謝!

    回覆刪除
  11. 您好:最近也在學習列印標籤,方便提供Sample Code嗎?謝謝。
    E-Mail:erise.tw@gmail.com

    回覆刪除
  12. 您好:最近也在學習列印標籤,方便的話請您寄Sample Code給我 謝謝。
    E-Mail:openbmw@gmail.com

    回覆刪除
  13. 您好,最近也有這方面的需求
    若方便,請您提供Sample Code參考
    E-Mail:a8956327@gmail.com

    回覆刪除
  14. 你好: 最近正在學習c#列印相關,方便提供Sample code嗎?
    E-Mail:rong1932@hotmail.com
    感謝你^^

    回覆刪除
  15. 您好~工作上正好需要開發類似的標籤,方便提供Sample code嗎 感恩^^
    e-mail: swf3462@gmail.com

    回覆刪除
  16. 請問這個可以提供程式碼給我嗎 非常感謝
    email: hushunghung@gmail.com

    回覆刪除
  17. 您好,最近在寫標籤機的列印
    請問可提供Sample Code讓我參考嗎?
    E-Mail: aaa0806449hh@gmail.com
    謝謝您~

    回覆刪除
  18. 您好~工作上正好需要開發類似的標籤,方便提供Sample code嗎 謝謝^^
    jillcats@ms84.url.com.tw

    回覆刪除
  19. 提姆大您好:
    個人現正處理相同的標籤印製需求,能否請您寄Sample Code供參!?
    EMAIL: myepaper.k@gmail.com
    感謝!!

    回覆刪除
  20. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: tchggyy@gmail.com
    謝謝您

    回覆刪除
  21. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    E-Mail: nisir8139@gmail.com
    謝謝您

    回覆刪除
  22. 您好,工作上剛好有需要開發列印標籤,方便提供Sample Code 嗎?謝謝。
    Email:i7896300080@gmail.com
    感謝您。

    回覆刪除
  23. 您好,目前正好遇到相同的需求,是否方便寄Sample Code給我參考?謝謝!

    回覆刪除
  24. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    Email:d0341802@gmail.com

    回覆刪除
  25. 您好,我也有需求,方便寄給我Sample Code參考嗎?
    Email:
    eric.liao.6688@hotmail.com.tw

    回覆刪除
  26. 您好,目前對這個功能有興趣,方便寄給我Sample Code參考嗎?謝謝!
    Email:
    stv1688@gmail.com

    回覆刪除
  27. 您好~~是否可以請您寄Sample Code給我參考!!謝謝!
    genjurobid@hotmail.com

    回覆刪除
  28. 您好~~請問是否可以您寄Sample Code給小弟學習參考?
    h180337037@gmail.com

    回覆刪除
  29. 您好~~是否可以請您寄Sample Code給我參考!!謝謝!
    triienergy@gmail.com

    回覆刪除
  30. 您好~~是否可以請您寄Sample Code給我參考!!謝謝!
    barry821130@gmail.com

    回覆刪除
  31. 您好,工作上剛好有需要開發列印標籤,方便提供Sample Code 嗎?謝謝。

    回覆刪除