如果我理解正确的话,从操作系统的角度来看,打印机也是一个文件。我可以获得打印机的 .NET C# FileStream 类型吗?这样做似乎很疯狂。 提前致谢。
最佳答案
打印机在 Win32 中被建模为一组位图。这是由 PrintDocument
包装的,它基本上设置了一个回调,让您单独绘制每一页并将它们一张一张地发送到打印后台处理程序,然后打印后台处理程序将数据(通常采用 .ps 格式)发送到打印机。
这就是现代打印机的工作方式,它们绘制页面,而不是文本。只有老式的矩阵打印机才能以流式的方式逐个字符地绘制文本。他们曾经使用“PRN:”特殊文件。然而,这在现代环境中已经失去了所有意义。
好消息是,使用 PrintDocument
类确实很容易,您可以为每个页面获得一个 Graphics
对象,您可以使用它在页面上的任何位置打印文本。页面,以及绘制图形。
如果您愿意,您可以通过缓存所有数据来模拟类似流的打印机,然后只需为每个页面调用 DrawText
即可。
关于c# - 我们可以获得打印机的文件流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565925/