c# 如何控制针式打印机走纸
我现在需要打印榜单,采用的是epson lq300k,由于榜单大小问题,所以打印前最好让其进行一次退纸进纸过程,这样打印出来的位置就比较好,可是在程序中如何向打印机发送指令让它操作呢?
我找了一个星期的论坛了 大概发现是采用esc指令方式,于是采用api函数,
const int OPEN_EXISTING = 3;
string prnPort = "LPT1";
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr CreateFile(string lpFileName,
int dwDesiredAccess,
int dwShareMode,
int lpSecurityAttributes,
int dwCreationDisposition,
int dwFlagsAndAttributes,
int hTemplateFile);
public POSPrinter(string prnPort)
{
this.prnPort = prnPort;//打印机端口
}
public string PrintLine(string str)
{
IntPtr iHandle = CreateFile(prnPort, 0x40000000, 0, 0, OPEN_EXISTING, 0, 0);
if (iHandle.ToInt32() == -1)
{
FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); //写数据
sw.write("ESC @");
sw.Write("ESC J");
sw.Close();
fs.Close();
return "";
}
可是打印机没有任何反应,哪怕我是打印普通的问题不是esc指令,打印机也没有反应,请问问题出在哪里?是我发送的问题吗?还是我连接出了问题?
第二个问题:esc指令中 进纸 退纸的指令是什么?
恳求高手了,请写出较详细的代码。
------解决方案--------------------
指令我又不过在家里,下班后再给你看看把,你给我留的邮箱我发给你好了
------解决方案--------------------
C#的代码我没有哦,但是我知道控制打印机和串口发数据是一样的,只是控制打印机发的是打印机的指令,如果你会用C#写串口,你也就会控制打印机了,最主要是知道这些指令怎么用就行了,呵呵...