打开打印机使用的串行端口

时间:2009-05-12 01:31:15

标签: c# printing serial-port epson

我正在将ESC / P代码(http://webpages.charter.net/dperr/links/esc_p83.htm)发送到连接到COM1的Epson LX-300打印机,并且已经安装了正确的驱动程序,因为其他人需要它。

所以我写了这个:

using System.IO.Ports;

public class EpsonPrint {

    private char esc = (char)27;
    private char ff = (char)12;

    public static void Main (string[] args) {
        new EpsonPrint();
    }

    public EpsonPrint() {
        SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8,  StopBits.One);
        port.Open();
        port.Write(esc+"@hola mundo!"+ff);
        port.Close();
    }
}

并且它可以工作,但只有Epson驱动程序指向另一个端口或其他东西,因为如果我让它使用COM1上面的代码抛出:

“给定的端口名称不是以COM / com开头,也不是解析为有效的串口。”

并且对于记录,这不是“端口已经打开”错误。

2 个答案:

答案 0 :(得分:0)

我认为您需要将其发送到驱动程序而不是端口。看看这篇文章:

http://support.microsoft.com/kb/138594/EN-US/

答案 1 :(得分:0)

COM1由打印机驱动程序保持。这可以防止您的应用程序打开端口。尝试将打印机驱动程序属性中的打印机端口切换到COM1以外的其他位置。在此之后您的应用程序将可以免费使用COM1。