日期:2014-05-18  浏览次数:20984 次

打印机清空色带和清空纸张操作
请问思路应该怎么走?打印机是并口吧,我只做过串口读取数据的程序。
如何向打印机发送指令呢?

------解决方案--------------------
使用LPT1口就好了,
[DllImport("kernel32")]
static extern SafeFileHandle CreateFile(
string filename,
uint desiredAccess,
uint shareMode,
uint attributes, // really SecurityAttributes pointer
uint creationDisposition,
uint flagsAndAttributes,
uint templateFile);
private const uint GENERIC_READ = 0x80000000;
private const uint GENERIC_WRITE = 0x40000000;
private const int OPEN_EXISTING = 3;
private const int INVALID_HANDLE_VALUE = -1;

 public static void PrintStringToPrinter(string as_str, string s_Port_)
{
string s_Port = s_Port_;
switch (s_Port.ToUpper())
{
case "LPT1":
SafeFileHandle iHandle;
iHandle = CreateFile("LPT1", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
if (iHandle.IsInvalid)
{
throw new Exception("Can't find the printer connecting to the port of LPT1");
}
else
{
FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);
//fs.WriteTimeout=0; 
byte[] byteOut;
Int32 dwCount = as_str.Length;
byteOut = new byte[dwCount];
for (int i = 0; i < dwCount; i++)
{
byteOut[i] = System.Convert.ToByte(as_str[i]);
}
fs.Write(byteOut, 0, dwCount);
fs.Flush();
fs.Close();
}
break;

}

}