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

C#无位图打印POS收据

高修伟
2023-03-14

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

Bitmap bp = new Bitmap(Panel1.Width, Panel1.Height);
        Panel1.DrawToBitmap(bp, new Rectangle(0, 0, Panel1.Width, Panel1.Height));
        e.Graphics.DrawImage(bp, 0, 0);
        PageSetupDialog psd = new PageSetupDialog();
        psd.Document = printDocument1; 

共有1个答案

夏侯臻
2023-03-14

有两种方法可以做到这一点,一种是复杂的,也是非通用的,比如一旦硬编码,就很难在不重新构建项目的情况下进行更改

第一种方式

这样,您就必须重写onDraw()函数进行打印,这样您就必须计算接收时要打印的每个字符串的位置和大小,这非常复杂,非常棘手,对于每一个微小的更改,您都必须重新更改所有的计算

<h3>Total Bill : %bill%</h3>

在您的程序中,您将读取文件并将%Bill%替换为实际值

完成此过程后,您将最终获得一个HTML收据代码,然后创建一个WebBrowser实例,如下所示

WebBrowser browser = new WebBrowser();
 browser.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
 browser.DocumentText = "your generated html code";

在此之后,创建一个WebBrowser_DocumentCompleted事件,如下所示

public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
  WebBrowser wb = (WebBrowser)sender;
  //set here your thermal printer by default if it is not already
  wb.Print(); 
}
 类似资料:
  • 我在这个问题上寻求帮助,但发现这些类型的打印机的打印标准是使用POS for.NET。问题是,这现在有点过时,或者至少几年来没有任何更新。关于如何使用这个库,有很多问题被问到,大多数答案都不太容易理解。因此,如果有人能在收据打印机上提供一个简单的短语(“Hello World”)打印方面的一步一步的帮助,我将非常感激。 我使用的是运行在64位Windows7上的visual Studio2012,

  • 我们希望打印到连接在apache运行的POS打印机上。由于应用程序的设计和部署,打印应该从服务器上完成(它应该检测订单并发送到不同的打印机和不同格式的打印...账单,厨房订单,等等...)。出于这个原因和其他原因(例如,从iPad访问应用程序),我们放弃了像QZ-Print applet这样的选项,并需要直接在服务器端打印。 提前谢了。

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

  • 问题内容: 我正在尝试在支持ESC命令的热敏打印机中打印576像素宽度的图像,问题是用于打印图像位的命令“ ESC *”仅允许我打印255像素宽度的图像(如果我使用576像素图像,其中一些部分被打印,其余部分是随机符号),在documentacion中表示命令最多接受255个字节,如下所示: 所以我不知道如何打印打印机页面最大宽度(576 px)的图像,我有以下代码可以打印图像: 我想使用24点双

  • 编辑:所以在一天的混乱之后。我的问题是spintf。我最初认为我的循环是错误的。

  • 我有一台爱普生热敏打印机,现在我要打印一些足够长的收据,我使用爱普生提供的代码样本。代码如下所示,现在的问题是,当收据超过一定长度(约30cm)时,打印机会停止并剪切收据,如下图所示。我如何打印长收据没有自动剪切。