C#PrintDocumentクラスを使用してラベルを印刷する



C Print Labels Using Printdocument Class



最近、RFIDアンチメタルタグにステッカーを貼るプロジェクトを作ったので、ラベルの印刷に問題があります。印刷方法は?その後、インターネットを閲覧したところ、印刷ラベルはA4用紙の印刷方法と同じで、レイアウトと用紙サイズの設定の問題だけであることがわかりました。

この記事では、プリンターの初期構成とその実装方法について説明します。ラベルには、主にアセットの基本情報とQRコードが表示されます。



まず、プリンタの用紙サイズを設定します。紙の幅の広さは、実際のラベルに基づいています。設定後、テストページを印刷してテストできます。例として、ZDesignerGX430tプリンターを取り上げます。



PrintDocumentインスタンスを作成し、プリンター名を構成します。

///  /// Print ///  private void Myprinter() { PrintDocument pd = new PrintDocument() pd.PrintPage += new PrintPageEventHandler(printDocument_PrintA4Page) pd.DefaultPageSettings.PrinterSettings.PrinterName = 'ZDesigner GX430t' //Printer name //pd.DefaultPageSettings.Landscape = true //Set landscape printing, not set to default is vertical pd.PrintController = new System.Drawing.Printing.StandardPrintController() pd.Print() }

実際のニーズに応じてページレイアウトとタイプセットを設定します

private void printDocument_PrintA4Page(object sender, PrintPageEventArgs e) { Font titleFont = new Font('Black body', 11, System.Drawing.FontStyle.Bold)//Title font  Font fntTxt = new Font('Song', 10, System.Drawing.FontStyle.Regular)//Body text  Font fntTxt1 = new Font('Song', 8, System.Drawing.FontStyle.Regular)//Body text  System.Drawing.Brush brush = new SolidBrush(System.Drawing.Color.Black)//Brush  System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black) //Line color  try { e.Graphics.DrawString('Beijing Automotive Technician College', titleFont, brush, new System.Drawing.Point(20, 10)) Point[] points111 = { new Point(20, 28), new Point(230,28) } e.Graphics.DrawLines(pen, points111) e.Graphics.DrawString('Asset Number:', fntTxt, brush, new System.Drawing.Point(20, 31)) e.Graphics.DrawString('123456789123465', fntTxt, brush, new System.Drawing.Point(80, 31)) e.Graphics.DrawString('Asset serial number:', fntTxt, brush, new System.Drawing.Point(20, 46)) e.Graphics.DrawString('123456789131321', fntTxt, brush, new System.Drawing.Point(80, 46)) e.Graphics.DrawString('Beijing Automotive Technician College', fntTxt1, brush, new System.Drawing.Point(100, 62)) Bitmap bitmap = CreateQRCode('Here is the QR code data') e.Graphics.DrawImage(bitmap, new System.Drawing.Point(240, 10)) } catch (Exception ee) { MessageBox.Show(ee.Message) } }

QRコードの生成方法ですが、ここではzxingを使用しています。



///  /// QR code method ///  ///  ///  public static Bitmap CreateQRCode(string asset) { EncodingOptions options = new QrCodeEncodingOptions { DisableECI = true, CharacterSet = 'UTF-8', //coding Width = 80, //width Height = 80 //height  } BarcodeWriter writer = new BarcodeWriter() writer.Format = BarcodeFormat.QR_CODE writer.Options = options return writer.Write(asset) }

効果チャート:

最後に添付されたソースコード、zxing.dllがあります

リンク: https://pan.baidu.com/s/1ebIILBJuhI2n02C_l-_gUQ

パスワード:w1jc