日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

c# 小票机打印二维条码_C#小票打印机

發(fā)布時(shí)間:2023/12/9 C# 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 小票机打印二维条码_C#小票打印机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用的佳博GP-5890XIII

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Printing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace JBPrinter

{

public partial class Form1 : Form

{

private IntPtr Gp_IntPtr; //驅(qū)動(dòng)打印句柄

private libUsbContorl.UsbOperation NewUsb = new libUsbContorl.UsbOperation();

private string iPaddress;

private System.Windows.Forms.PrintPreviewDialog printv_pos = null;

private System.Drawing.Printing.PrintDocument printd_pos = null;

public Form1()

{

InitializeComponent();

iPaddress = txt_Ip1.Text.Trim() + "." + txt_Ip2.Text.Trim() + "." + txt_Ip3.Text.Trim() + "." + txt_Ip4.Text.Trim();

}

private void btn_dk_Click(object sender, EventArgs e)

{

LoadPOSDll PosPrint = new LoadPOSDll();

//POS_COM_DTR_DSR 0x00 流控制為DTR/DST

//POS_COM_RTS_CTS 0x01 流控制為RTS/CTS

//POS_COM_XON_XOFF 0x02 流控制為XON/OFF

//POS_COM_NO_HANDSHAKE 0x03 無(wú)握手

//POS_OPEN_PARALLEL_PORT 0x12 打開(kāi)并口通訊端口

//POS_OPEN_BYUSB_PORT 0x13 打開(kāi)USB通訊端口

//POS_OPEN_PRINTNAME 0X14 打開(kāi)打印機(jī)驅(qū)動(dòng)程序

//POS_OPEN_NETPORT 0x15 打開(kāi)網(wǎng)絡(luò)接口

if (PosPrint.OpenNetPort(iPaddress))//當(dāng)參數(shù)nParam的值為POS_OPEN_NETPORT時(shí),表示打開(kāi)指定的網(wǎng)絡(luò)接口,如“192.168.10.251”表示網(wǎng)絡(luò)接口IP地址,打印時(shí)參考

{

Gp_IntPtr = PosPrint.POS_IntPtr;

txt_OPenState.Text = "打開(kāi)網(wǎng)口成功!";

}

else

{

txt_OPenState.Text = "失敗!";

}

}

#region 端口地址修改

private void txt_Ip1_TextChanged(object sender, EventArgs e)

{

iPaddress = txt_Ip1.Text.Trim() + "." + txt_Ip2.Text.Trim() + "." + txt_Ip3.Text.Trim() + "." + txt_Ip4.Text.Trim();

}

private void txt_Ip2_TextChanged(object sender, EventArgs e)

{

iPaddress = txt_Ip1.Text.Trim() + "." + txt_Ip2.Text.Trim() + "." + txt_Ip3.Text.Trim() + "." + txt_Ip4.Text.Trim();

}

private void txt_Ip3_TextChanged(object sender, EventArgs e)

{

iPaddress = txt_Ip1.Text.Trim() + "." + txt_Ip2.Text.Trim() + "." + txt_Ip3.Text.Trim() + "." + txt_Ip4.Text.Trim();

}

private void txt_Ip4_TextChanged(object sender, EventArgs e)

{

iPaddress = txt_Ip1.Text.Trim() + "." + txt_Ip2.Text.Trim() + "." + txt_Ip3.Text.Trim() + "." + txt_Ip4.Text.Trim();

}

#endregion

#region 打印機(jī)狀態(tài)檢測(cè)(請(qǐng)先檢網(wǎng)關(guān))

private void btn_QueryStatus_Click(object sender, EventArgs e)

{

Byte res = new Byte();

int ret = LoadPOSDll.POS_NETQueryStatus(iPaddress, out res);

StringBuilder sb = new StringBuilder();

if ((res & 0x10) == 0x10)

sb.AppendLine("打印機(jī)出錯(cuò)!");

if ((res & 0x02) == 0x02)

sb.AppendLine("打印機(jī)脫機(jī)!");

if ((res & 0x04) == 0x04)

sb.AppendLine("上蓋打開(kāi)!");

if ((res & 0x20) == 0x20)

sb.AppendLine("切刀出錯(cuò)!");

if ((res & 0x40) == 0x40)

sb.AppendLine("紙將盡!");

if ((res & 0x80) == 0x80)

sb.AppendLine("缺紙!");

if (sb.Length > 0)

MessageBox.Show(sb.ToString());

}

#endregion

#region 簡(jiǎn)單打印1

private void btn_Print1_Click(object sender, EventArgs e)

{

//LoadPOSDll PosPrint = new LoadPOSDll();

//POS_COM_DTR_DSR 0x00 流控制為DTR/DST

//POS_COM_RTS_CTS 0x01 流控制為RTS/CTS

//POS_COM_XON_XOFF 0x02 流控制為XON/OFF

//POS_COM_NO_HANDSHAKE 0x03 無(wú)握手

//POS_OPEN_PARALLEL_PORT 0x12 打開(kāi)并口通訊端口

//POS_OPEN_BYUSB_PORT 0x13 打開(kāi)USB通訊端口

//POS_OPEN_PRINTNAME 0X14 打開(kāi)打印機(jī)驅(qū)動(dòng)程序

//POS_OPEN_NETPORT 0x15 打開(kāi)網(wǎng)絡(luò)接口

// if (LoadPOSDll.POS_StartDoc())

// {

// byte[] by_SendData = System.Text.Encoding.Default.GetBytes("今天到此一游~~\r\n");

// LoadPOSDll.POS_WriteFile(PosPrint.POS_IntPtr, by_SendData, (uint)by_SendData.Length);

// LoadPOSDll.POS_WriteFile(PosPrint.POS_IntPtr, new byte[] { 0x0a }, 1);

// LoadPOSDll.POS_EndDoc();

// }

print();

}

#endregion

#region 先預(yù)覽后打印

private void button1_Click(object sender, EventArgs e)

{

//打印預(yù)覽

PrintPreviewDialog ppd = new PrintPreviewDialog();

PrintDocument pd = new PrintDocument();

//設(shè)置邊距

Margins margin = new Margins(15, 15, 15, 15);

pd.DefaultPageSettings.Margins = margin;

紙張?jiān)O(shè)置默認(rèn)

PaperSize pageSize = new PaperSize("First custom size", getYc(70), 420);

pd.DefaultPageSettings.PaperSize = pageSize;

//打印事件設(shè)置

pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);

ppd.Document = pd;

ppd.ShowDialog();

try

{

//print();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);

pd.PrintController.OnEndPrint(pd, new PrintEventArgs());

}

}

#endregion

private int getYc(double cm)

{

return (int)(cm / 25.4) * 100;

}

#region 打印的內(nèi)容

#region 標(biāo)題

public string GetPrintHead()

{

StringBuilder sb = new StringBuilder();

string tou = "重慶洞子老火鍋";

sb.Append(" " + tou + " \n");

return sb.ToString();

}

#endregion

#region 內(nèi)容

public string GetPrintStr()

{

StringBuilder sb = new StringBuilder();

string address = "重慶涪陵XXX號(hào)";

string saleID = "2010930233330";

string item = "商品";

decimal price = 25.00M;

int count = 1;

decimal total = 0.00M;

decimal fukuan = 500.00M;

//sb.Append(" " + tou + " \n");

sb.Append("--------------------------------------------------\n");

sb.Append("日期:" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "\n" + "單號(hào):" + saleID + "\n");

sb.Append("--------------------------------------------------\n");

sb.Append("項(xiàng)目" + "\t" + "數(shù)量" + "\t" + "單價(jià)" + "\t" + "小計(jì)" + "\n");

for (int i = 0; i < count; i++)

{

decimal xiaoji = (i + 1) * price;

sb.Append(item + (i + 1) + "\t" + (i + 1) + "\t" + price + "\t" + xiaoji);

total += xiaoji;

if (i != (count))

sb.Append("\n");

}

sb.Append("--------------------------------------------------\n");

sb.Append("數(shù)量: " + count + " 合計(jì): " + total + "\n");

sb.Append("付款: " + fukuan);

sb.Append(" 現(xiàn)金找零: " + (fukuan - total) + "\n");

sb.Append("--------------------------------------------------\n");

sb.Append("地址:" + address + "\n");

sb.Append("電話:123456789 123456789\n");

sb.Append(" 謝謝惠顧歡迎下次光臨 ");

return sb.ToString();

}

#endregion

#endregion

/// POS打印

///

public void print()

{

this.printv_pos = new System.Windows.Forms.PrintPreviewDialog();

this.printd_pos = new System.Drawing.Printing.PrintDocument();

this.printv_pos.AutoScrollMargin = new System.Drawing.Size(0, 0); //獲取或設(shè)置自動(dòng)滾動(dòng)邊距的大小

this.printv_pos.AutoScrollMinSize = new System.Drawing.Size(0, 0); //獲取或設(shè)置自動(dòng)滾動(dòng)條的最小大小

this.printv_pos.ClientSize = new System.Drawing.Size(400, 300); //獲取或設(shè)置窗體工作區(qū)的大小

this.printv_pos.Document = this.printd_pos; //獲取或設(shè)置要預(yù)覽的文檔

this.printv_pos.Enabled = true;

this.printv_pos.Name = "printPreviewDialog1";

this.printv_pos.Visible = false;

this.printd_pos.PrintController = new System.Drawing.Printing.StandardPrintController();

this.printd_pos.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);

//設(shè)置邊距

System.Drawing.Printing.Margins margins = new System.Drawing.Printing.Margins(5, 5, 5, 5);

this.printd_pos.DefaultPageSettings.Margins = margins;

this.printd_pos.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("First custom size", getYc(70), 420);

//this.printDocument1.PrinterSettings.PrinterName = "";

//Margins margins = new Margins(

//this.printv_pos.Document = this.printd_pos;

printv_pos.PrintPreviewControl.AutoZoom = false;

printv_pos.PrintPreviewControl.Zoom = 1;

// this.printv_pos.ShowDialog(win);

try

{

printd_pos.Print();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

printd_pos.PrintController.OnEndPrint(printd_pos, new PrintEventArgs());

}

}

#region (頁(yè)面設(shè)置事件)字體設(shè)置

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)

{

Graphics g = e.Graphics;

//頭部

string strHeader = GetPrintHead();

Font ft = new Font("微軟雅黑", 12.5F, FontStyle.Bold); //字體

Point pt = new Point(0, 0); //頂部

g.DrawString(strHeader, ft, new SolidBrush(Color.Black), pt);

//Graphics.MeasureString 方法 (String,?Font)

//MeasureString測(cè)量用指定的 System.Drawing.Font 繪制的指定字符串

Size headSize = Size.Round(g.MeasureString(strHeader, ft)); //頭部的Size(寬和高)

headSize.Width = 0; //設(shè)置寬為0,是因?yàn)橹恍枰騳移動(dòng),不需要x移動(dòng)

//內(nèi)容

string strFile = GetPrintStr();

ft = new Font("宋體", 8.5F, FontStyle.Regular);

pt = new Point(headSize); //Point(Size size)

g.DrawString(strFile, ft, new SolidBrush(Color.Black), pt);

SizeF strSize = g.MeasureString(strHeader, ft);

}

#endregion

}

}

總結(jié)

以上是生活随笔為你收集整理的c# 小票机打印二维条码_C#小票打印机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。