我正在尝试将原始ascii数据打印到热敏打印机.我通过使用此代码示例执行此操作:http://support.microsoft.com/kb/322091但我的打印机始终只打印一个字符,直到我按下换页按钮.如果我用记事本打印东西,打印机将自动进行换页,但不打印任何文本.
打印机通过usb通过lpt2usb适配器连接,Windows 7使用"Generic - > Generic/Text Only"驱动程序.
谁知道出了什么问题?如何打印一些单词并做一些换页?我必须发送一些控制字符吗?如果是的话:我如何发送它们?
编辑14.04.2010 21:51
我的代码(C#)看起来像这样:
PrinterSettings s = new PrinterSettings();
s.PrinterName = "Generic / Text Only";
RawPrinterHelper.SendStringToPrinter(s.PrinterName, "Test");
Run Code Online (Sandbox Code Playgroud)
按下换页按钮后,此代码将返回"T"(这里有一个黑色的按钮:swissmania.ch/images/935-151.jpg - 对不起,两个超链接的声誉不够)
编辑15.04.2010 16:56
我现在在这里使用代码表格:c-sharpcorner.com/UploadFile/johnodonell/PrintingDirectlytothePrinter11222005001207AM/PrintingDirectlytothePrinter.aspx
我修改了一下,我可以使用以下代码:
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[1] { 13 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
Run Code Online (Sandbox Code Playgroud)
运行此代码与按下换页按钮具有相同的效果,它工作正常!
但是像这样的代码仍然不起作用:
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[2] { 66, 67 …Run Code Online (Sandbox Code Playgroud) 我的应用程序需要打印发票,然后从数据库中获取发票,在大字符串中插入发票上的信息(告诉行,列等),之后我准备将字符串发送到打印机.
我的问题是:我需要在我的大字符串中放入一些ESC/P命令/字符
我试着这样做:
char formFeed = (char)12;
Convert.ToChar(12);
MyBigString.Insert(10, formFeed);
Run Code Online (Sandbox Code Playgroud)
这样,第10行将执行FormFeed,但这不起作用
注意:我将MybigString一次性发送到打印机.
为了使我的代码有效,我需要逐行将数据发送到打印机?
谢谢您的帮助.
PS:对不起,对于我的英语,我是一名不会说英语的巴西开发人员.
我一直试图用pos打印机(Epson TM-U220D)以编程方式提供纸张.我遇到的问题是文档的最后一行没有打印,而是打印为下一个打印文档的第一行.我尝试使用POS for .NET发送"ESC | flF"命令,也尝试使用串口发送原始esc/pos命令,但它不起作用.有任何想法吗?
我想发送原始数据进行打印,避免选择打印机(快速打印)。
我正在尝试使用 Microsoft 提供的这个助手:https : //support.microsoft.com/en-us/kb/322091#top
但是,当我调用该方法时:
RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s);
Run Code Online (Sandbox Code Playgroud)
我的打印机开始工作(发出一些噪音),但它从不取出白纸并开始打印。
我已经在我的两台打印机上试过了,两台打印机的行为都是一样的。我也放弃了打印机坏了的可能性,因为我可以打印其他文档。
有什么问题?