我正在使用这个go 包,一切都很好。但得到了坏的汉字印刷品。我不擅长这种低级/硬件/编码的东西。所以有人提示我如何更正我的代码。
更新代码:</p>
func main() {
testWindowPrinter()
}
func testWindowPrinter() {
// all have bad prints
printLines(simplifiedchinese.GBK.NewDecoder().Reader(strings.NewReader("你好")))
printLines(simplifiedchinese.HZGB2312.NewDecoder().Reader(strings.NewReader("你好")))
printLines(strings.NewReader("你好"))
}
func printLines(lines ...io.Reader) error {
var defaultPrinter, err = printer.Default()
if err != nil {
log.Println(1, err.Error())
return err
}
p, err := printer.Open(defaultPrinter)
if err != nil {
log.Println(2, err.Error())
return err
}
defer p.Close()
err = p.StartRawDocument("test")
if err != nil {
log.Println(3, err.Error())
return err
}
defer p.EndDocument()
err = p.StartPage()
if err != nil {
log.Println(4, err.Error())
return err
}
// Am I doing right here?
for i := range lines {
var bf = new(bytes.Buffer)
n, err := bf.ReadFrom(lines[i])
if err != nil {
println(err.Error())
} else {
println(n)
fmt.Fprintln(p, bf.String())
}
}
err = p.EndPage()
if err != nil {
log.Println(5, err.Error())
return err
}
return nil
}
更多细节