C# net8 PrintDocument 列印兩頁不一樣的 範例 [支援熱敏印表機切紙]
C# net8 PrintDocument 列印兩頁不一樣的 範例 [支援熱敏印表機切紙]
資料來源: copilot/gemini + 自己
code
using System; using System.Drawing; using System.Drawing.Printing; using System.Runtime.InteropServices; using System.IO; using System.Security; using System.Text; using static System.Runtime.InteropServices.JavaScript.JSType; using System.ComponentModel; using System.Security.Cryptography; class Program { static int pageNumber = 1; static string printerName = "80mm Series Printer"; // 替換成實際的印表機名稱 static void Main() { // 註冊編碼提供者,這樣可以使用 big5 編碼 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); for (int i = 0; i < 2; i++) { pageNumber = i; PrintDocument printDoc = new PrintDocument(); printDoc.PrinterSettings.PrinterName = printerName; // 設定印表機解析度(例如:300 DPI) printDoc.PrinterSettings.DefaultPageSettings.PrinterResolution = new PrinterResolution() { X = 300, Y = 300 }; printDoc.PrintPage += new PrintPageEventHandler(PrintPage); printDoc.Print(); } } static void PrintPage(object sender, PrintPageEventArgs e) { pageNumber++; e.Graphics.DrawString($"這是第{pageNumber}頁", new Font("Arial", 16), Brushes.Black, 100, 100); if (pageNumber % 2 == 0) { e.Graphics.DrawRectangle(Pens.Black, new Rectangle(50, 150, 200, 100)); } else { e.Graphics.DrawLine(Pens.Black, new Point(50, 150), new Point(200, 100)); } e.HasMorePages = false; // 最後一頁 } }