粗略来说,两者的区别如下(下图打印系统的流程简单化,供参考理解用): PrintDocument -> 打印系统服务 -> 具体的打印驱动 -> 打印机 CreateFile -> 打印机 至于那个好,我一定说是PrintDocument好。因为它得到的打印系统的帮忙,程序员不用去关心一些底层细节。 归根到底,打印数据总要传给打印机(那个红色箭头部分)。 但是具体打印机的数据格式千差万别(比如有PCL,PJL,ESP/P,Text等等),而且具体的连接方式也有好多(LPT,COM,USB,TCP,SMB等等)。 CreateFile: 如果你要自己CreateFile传送数据,要首先把打印内容渲染为打印机理解的格式,然后要根据连接方式传送数据,等等这些任务都极其繁重。而且,一旦换打印机或更改连接方式,你就要更新代码。 PrintDocument: 打印服务系统,极大简化了该过程。你只要关心如何在统一的画布(GDI)上打印内容,其他任务系统都帮你完成。系统可以利用打印驱动来渲染打印任务,帮你传输数据,包括打印机忙碌重传机制等等。
[quote=引用 楼主 HBJMSHOP 的回复:] 有时会不打印,需重启程序才行。
有时会不打印,需重启程序才行。
111,094
社区成员
642,554
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧