C# 针式打印机

renmiaoxin 2012-10-16 01:12:09
要用C#控制针式打印机,一行一行的打印,怎么弄呢?
...全文
164 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-10-19
  • 打赏
  • 举报
回复
是的,这个代码要用lpt端口。
renmiaoxin 2012-10-19
  • 打赏
  • 举报
回复
最后我用并口控制的打印机。usb总是控制不好
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
用api createfile 像写文件一样往 lpt1 写

随便找个代码,没有仔细看,思路是对的。
http://bytes.com/topic/c-sharp/answers/942783-write-escape-sequence-epson-printer
tragic_rabbit 2012-10-16
  • 打赏
  • 举报
回复
#region声明
usingSystem;
usingSystem.Runtime.InteropServices;
usingSystem.IO;
#endregion
namespaceLongRuan
{
///<summary>
///POSPrinter的摘要说明。
///</summary>
publicclassPOSPrinter
{
constintOPEN_EXISTING=3;
stringprnPort="LPT1";
[DllImport("kernel32.dll",CharSet=CharSet.Auto)]
privatestaticexternIntPtrCreateFile(stringlpFileName,
intdwDesiredAccess,
intdwShareMode,
intlpSecurityAttributes,
intdwCreationDisposition,
intdwFlagsAndAttributes,
inthTemplateFile);
publicPOSPrinter()
{
//
//TODO:在此处添加构造函数逻辑
//
}
publicPOSPrinter(stringprnPort)
{
this.prnPort=prnPort;//打印机端口
}
publicstringPrintLine(stringstr)
{
IntPtriHandle=CreateFile(prnPort,0x40000000,0,0,OPEN_EXISTING,0,0);
if(iHandle.ToInt32()==-1)
{
return"没有连接打印机或者打印机端口不是LPT1";
}
else
{
FileStreamfs=newFileStream(iHandle,FileAccess.ReadWrite);
StreamWritersw=newStreamWriter(fs,System.Text.Encoding.Default);//写数据
sw.WriteLine(str);
//开钱箱
//sw.WriteLine(Chr(&H1B)&Chr(70)&Chr(0)&Chr(20)&Chr(&HA0))
sw.Close();
fs.Close();
return"";
}
}
}
}

--------------------------------------------------------------------------------
调用方法:
LongRuan.POSPrinterprn=newLongRuan.POSPrinter("LPT1");
stringstr=prn.PrintLine("写端口测试!");
if(str!="")
MessageBox.Show(str);
答:>#region声明
usingSystem;
usingSystem.Runtime.InteropServices;
usingSystem.IO;
#endregion
namespaceLongRuan
{
///<summary>
///POSPrinter的摘要说明。
///</summary>
publicclassPOSPrinter
{
constintOPEN_EXISTING=3;
stringprnPort="LPT1";
[DllImport("kernel32.dll",CharSet=CharSet.Auto)]
privatestaticexternIntPtrCreateFile(stringlpFileName,
intdwDesiredAccess,
intdwShareMode,
intlpSecurityAttributes,
intdwCreationDisposition,
intdwFlagsAndAttributes,
inthTemplateFile);
publicPOSPrinter()
{
//
//TODO:在此处添加构造函数逻辑
//
}
publicPOSPrinter(stringprnPort)
{
this.prnPort=prnPort;//打印机端口
}
publicstringPrintLine(stringstr)
{
IntPtriHandle=CreateFile(prnPort,0x40000000,0,0,OPEN_EXISTING,0,0);
if(iHandle.ToInt32()==-1)
{
return"没有连接打印机或者打印机端口不是LPT1";
}
else
{
FileStreamfs=newFileStream(iHandle,FileAccess.ReadWrite);
StreamWritersw=newStreamWriter(fs,System.Text.Encoding.Default);//写数据
sw.WriteLine(str);
//开钱箱
//sw.WriteLine(Chr(&H1B)&Chr(70)&Chr(0)&Chr(20)&Chr(&HA0))
sw.Close();
fs.Close();
return"";
}
}
}
}

--------------------------------------------------------------------------------
调用方法:
LongRuan.POSPrinterprn=newLongRuan.POSPrinter("LPT1");
stringstr=prn.PrintLine("写端口测试!");
if(str!="")
MessageBox.Show(str);

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧