当前位置: 首页 > 知识库问答 >
问题:

POS应用程序开发-收据打印

柯栋
2023-03-14

我在这个问题上寻求帮助,但发现这些类型的打印机的打印标准是使用POS for.NET。问题是,这现在有点过时,或者至少几年来没有任何更新。关于如何使用这个库,有很多问题被问到,大多数答案都不太容易理解。因此,如果有人能在收据打印机上提供一个简单的短语(“Hello World”)打印方面的一步一步的帮助,我将非常感激。
我使用的是运行在64位Windows7上的visual Studio2012,我用C#编写WPF。

共有1个答案

尉迟安民
2023-03-14

我知道这是一个老帖子,但对于那些仍然在寻找解决方案的人,我可以告诉你我做了什么。

在花了很多时间处理.NET的OPOS和POS之后,我最终放弃了它们,只使用了内置的system.drawing.printing库。NET的OPOS和POS最终很难工作,最终没有内置库那么好。

我用的是爱普生TM-T20II收据打印机。

public static void PrintReceiptForTransaction()
{
    PrintDocument recordDoc = new PrintDocument();

    recordDoc.DocumentName = "Customer Receipt";
    recordDoc.PrintPage += new PrintPageEventHandler(ReceiptPrinter.PrintReceiptPage); // function below
    recordDoc.PrintController = new StandardPrintController(); // hides status dialog popup
                                                                // Comment if debugging 
    PrinterSettings ps = new PrinterSettings();
    ps.PrinterName = "EPSON TM-T20II Receipt";
    recordDoc.PrinterSettings = ps;
    recordDoc.Print();
    // --------------------------------------

    // Uncomment if debugging - shows dialog instead
    //PrintPreviewDialog printPrvDlg = new PrintPreviewDialog();
    //printPrvDlg.Document = recordDoc;
    //printPrvDlg.Width = 1200;
    //printPrvDlg.Height = 800;
    //printPrvDlg.ShowDialog();
    // --------------------------------------

    recordDoc.Dispose();
}

private static void PrintReceiptPage(object sender, PrintPageEventArgs e)
{
    float x = 10;
    float y = 5;
    float width = 270.0F; // max width I found through trial and error
    float height = 0F;

    Font drawFontArial12Bold = new Font("Arial", 12, FontStyle.Bold);
    Font drawFontArial10Regular = new Font("Arial", 10, FontStyle.Regular);
    SolidBrush drawBrush = new SolidBrush(Color.Black);

    // Set format of string.
    StringFormat drawFormatCenter = new StringFormat();
    drawFormatCenter.Alignment = StringAlignment.Center;
    StringFormat drawFormatLeft = new StringFormat();
    drawFormatLeft.Alignment = StringAlignment.Near;
    StringFormat drawFormatRight = new StringFormat();
    drawFormatRight.Alignment = StringAlignment.Far;

    // Draw string to screen.
    string text = "Company Name";
    e.Graphics.DrawString(text, drawFontArial12Bold, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter);
    y += e.Graphics.MeasureString(text, drawFontArial12Bold).Height;

    text = "Address";
    e.Graphics.DrawString(text, drawFontArial10Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter);
    y += e.Graphics.MeasureString(text, drawFontArial10Regular).Height;

    // ... and so on
}
 类似资料:
  • 在我的项目中,客户需要使用POS打印机打印收据,这可以使用JAVA POS来完成。我在网上搜索没有任何有用的材料,但发现 1.javapos 2.jpos 可以有人请指导我应该进行JAVA POS或JPOS。 该应用程序基于Java Swing desktop而不是基于web。 真的坚持这一点,任何帮助都是非常有用的

  • 我正在开发一个销售点应用程序在C#Windows窗体。现在我在一个舞台上,我必须为客户打印收据。为此,我使用了热敏打印机。我把收据画在一个面板上的图像附上。首先,我试着用位图打印它,但当我打印它在热敏打印机。那个密码是bellow

  • 我想用JAVA为这个POS开发一个POS应用程序http://www.fametech.com.tw/product_content.php?id=67 操作系统是Windowx XP,通过通信端口3连接POS。我只在设备管理器中看到通信端口3。 null 另外,已经有一个软件与pos,但写在foxpro或VB.NET(我不太确定,因为我不是这些语言很好)。但是这个程序已经可以打开收银台,打印收据

  • 我的应用程序的通知工作良好,在后台和前台接收通知,使用Firebase原生插件。现在,我的客户端需要在收到通知时打开应用程序,而不需要任何用户迭代。 我找到了这个,但没有正确的答案。 在调试中,我意识到通知是通过FireBaseInstanceIDReceiver广播接收的。所以,我试过: 修改 plugins/cordova-plugin-firebase-lib/plugin.xml 我的问题

  • Hyperledger Composer支持创建Web、移动或原生Node.js应用程序。它包括composer-rest-server(本身基于LoopBack技术)为业务网络自动生成REST API,和hyperledger-composer,用于生成骨架Angular应用的Yeoman框架的代码生成插件。 另外,它还包含一组丰富的JavaScript API来构建原生Node.js应用程序。

  • 应用程序开发 应用是独立于蓝天采集器的程序,您可以使用任何php框架来开发,完全按照您自己的代码风格编写应用 使用“后台»工具&开发»开发»应用程序”可快速创建新的应用 应用创建好后可在“后台»云端»已下载»应用程序”中看到,创建的文件则在“根目录/app/标识名”中 注意:应用目录下的index.php为入口文件请勿修改,标识名.php为应用配置文件(建议不要直接修改,而是在“应用»管理»开发应