c# - 我们可以获得打印机的文件流吗?

标签 c#

如果我理解正确的话,从操作系统的角度来看,打印机也是一个文件。我可以获得打印机的 .NET C# FileStream 类型吗?这样做似乎很疯狂。 提前致谢。

最佳答案

打印机在 Win32 中被建模为一组位图。这是由 PrintDocument 包装的,它基本上设置了一个回调,让您单独绘制每一页并将它们一张一张地发送到打印后台处理程序,然后打印后台处理程序将数据(通常采用 .ps 格式)发送到打印机。

这就是现代打印机的工作方式,它们绘制页面,而不是文本。只有老式的矩阵打印机才能以流式的方式逐个字符地绘制文本。他们曾经使用“PRN:”特殊文件。然而,这在现代环境中已经失去了所有意义。

好消息是,使用 PrintDocument 类确实很容易,您可以为每个页面获得一个 Graphics 对象,您可以使用它在页面上的任何位置打印文本。页面,以及绘制图形。

如果您愿意,您可以通过缓存所有数据来模拟类似流的打印机,然后只需为每个页面调用 DrawText 即可。

关于c# - 我们可以获得打印机的文件流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565925/

相关文章:

c# - 读取从ASMX返回的JSON数据

c# - 如何使用 protoBuf 进行结构序列化

c# - 加快将字符串列表加载到 Treeview 的速度

c# - 任务<T>如何返回

c# - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,以了解在附近使用的正确语法

c# - 获取有关 Ninject 拦截的方法的信息

c# - WatiN 浏览器中的自定义 BeforeNavigate 事件

c# - Linq,使用 ToLookup 将值投影到不同的命名变量

c# - 如何在 asp.net core 中创建无限流端点

c# - 如何通过最高 ID 获取 List<object> 中的值?