gpt4 book ai didi

printing - 如何打印到实际打印机?

转载 作者:IT王子 更新时间:2023-10-29 01:08:49 25 4
gpt4 key购买 nike

我有一个用 Go 编写的消息传递服务器。现在我有一个需求,有些消息需要服务器打印在纸上。

我如何在 Go 中实现它?我真的很难找到关于这个主题的任何东西。

该应用程序将在 Windows 机器上运行,并且需要能够以固定宽度的字体打印 UTF8 编码的文本。因此不需要花哨的格式(粗体文本、颜色等)。

我对如何解决这个问题一无所知...有人可以为我阐明这一点并为我指明正确的方向吗?

最佳答案

使用@abalos 和@alex 的回答,我能够按照我需要的方式运行它。回答这个问题以提供如何使用它的示例 - 使用 alex 的库非常简单:

import prt "github.com/alexbrainman/printer"

...

name, err := prt.Default() // returns name of Default Printer as string
if err != nil {
log.fatal(err)
}
p, err := prt.Open(name) // Opens the named printer and returns a *Printer
if err != nil {
log.fatal(err)
}
err = p.StartDocument("test", "text") // test: doc name, text: doc type
if err != nil {
log.fatal(err)
}
err = p.StartPage() // begin a new page
if err != nil {
log.fatal(err)
}
n, err := p.Write([]byte("Hello, Printer!")) // Send some text to the printer
if err != nil {
log.fatal(err)
}
fmt.Println("Num of bytes written to printer:", n)
err = p.PageEnd() // end of page
if err != nil {
log.fatal(err)
}
err = p.DocumentEnd() // end of document
if err != nil {
log.fatal(err)
}
err = p.Close() // close the resource
if err != nil {
log.fatal(err)
}

可以找到有关 Windows API 的更多详细信息 here

关于printing - 如何打印到实际打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com