存储打印机命令以便以后传输

时间:2014-06-11 11:09:38

标签: sql c#-4.0 thermal-printer epson receipt

我建立一张收据,通过ESC / Pos发送到收据打印机。如果我以后需要打印出该收据的副本,我需要将esc / pos命令存储在数据库中。这是我的问题开始的地方,因为我无法找到一个正确的数据类型来存储收据。

如何存储收据副本?字符串? Varbinarys?还要别的吗?

更新: 对不起。我写了一个关于ESC / Pos如何工作的快速例子。

        Encoding enc = Encoding.ASCII;

        string text = string.Empty;
        text += Convert.ToChar(27) + "@"; 
        text += Convert.ToChar(27) + "R" + Convert.ToChar(9);
        text += Convert.ToChar(27) + "t" + Convert.ToChar(5);

        for (int i = 255; i < 300; i++)
        {
            text += i + " " + Convert.ToChar(i) + Environment.NewLine;
        }
        for (int i = 0; i < 4; i++)
            text += Environment.NewLine;
        text += Convert.ToChar(29) + "V" + Convert.ToChar(65) + Convert.ToChar(0);
        clientSock.Send(enc.GetBytes(text.ToCharArray()));

这就是我要存储的内容。我不想只保存文本变量中的内容,因为我会丢失可能包含在内容中的格式。我使用的是Microsoft SQL Server(T-SQL)。

1 个答案:

答案 0 :(得分:0)

看起来你需要存储至少一些不可打印的字符,所以你不想使用strings / varchar。此外,varbinary限制为254个字节,因此您最好使用blob。

另外,只是fyi,您应该考虑使用StringBuilder而不是执行所有字符串连接。它会快得多。