我正在使用打印机(ESC POS)在/ dev / usb / lp0上写入数据时打印文本
简化代码是:
package main
import (
"bufio"
"os"
)
func main() {
f, err := os.Create("/dev/usb/lp0")
if err != nil {
panic(err)
}
defer f.Close()
w := bufio.NewWriter(f)
w.Write([]byte("\x1B@"))
w.WriteString("test-1\n")
w.WriteString("test-2\n")
w.WriteString("test-3\n")
w.WriteString("test-4\n")
w.WriteString("test-5\n")
w.WriteString("test-6\n")
w.WriteString("test-7\n")
w.WriteString("test-8\n")
w.WriteString("test-9\n")
w.Flush()
f.Sync()
}
并且大部分时间都没有打印最后一行,除非我在最后添加一个计时器。
我认为我已正确关闭所有内容,所以不确定这里发生了什么......如果我写一个文件,它可以正常运行,运气好吗?
提前谢谢你,我昨晚花了这么多,这让我发疯了。)
编辑:错误处理代码(f.Sync()实际上失败了,我删除了它)
package main
import (
"bufio"
"os"
)
func main() {
f, err := os.Create("/dev/usb/lp0")
if err != nil {
panic(err)
}
defer f.Close()
w := bufio.NewWriter(f)
_, err = w.Write([]byte("\x1B@"))
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-1\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-2\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-3\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-4\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-5\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-6\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-7\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-8\n")
if err != nil {
panic(err)
}
_, err = w.WriteString("toto-9\n")
if err != nil {
panic(err)
}
err = w.Flush()
if err != nil {
panic(err)
}
}