c-如何使用Windows API打印任何文件类型



有没有一种简单的方法可以使用windows API打印任何文件?基本上,将PostScript、PDF、JPG等发送到API并进行打印。我找到的每个C代码示例都使用设备上下文并绘制到其中,然后将DC传递给API。我知道有一个RAW选项,你可以绕过打印机驱动程序,直接将文件发送到打印机,但我发现它不适用于所有打印机。我找了几个小时,什么也找不到。

Windows API不知道;任何文件";。所以它不能在纸上呈现(这就是我所理解的"打印"(。

你要么自己处理渲染,解释文件的内容(这是你已经在DeviceContext和绘图中找到的那种代码(,要么你可以将文件传递给能够打印它的应用程序。

对于后面的操作,Windows API有一个宋在评论中提到的机制:使用print命令调用ShellExecute。这通常可以很好地工作,但并不总是如此,因为有些应用程序不会自行注册为能够打印其文件。

正如您在问题中提到的,也有可能绕过WinApi将内容直接发送到打印机(RAW写入(。这允许应用程序使用其设备驱动程序未处理的打印机的特定功能。使用这种方法,您的应用程序将高度依赖于打印机型号,同时使用打印机驱动程序(DeviceContext和绘图(使您的应用软件(如果编写良好(能够在Window支持的几乎任何打印机上打印。

最新更新