如何在c#中连接到打印驱动程序
本文关键字:打印 驱动程序 连接 | 更新日期: 2023-09-27 18:12:41
我有一个任务,转换一堆格式,如.pdf, .doc, .jpg, .xls, .txt, .bmp
文件类型到.png
格式。我找到了一个打印驱动程序。
但是我如何连接到。net中的打印机驱动程序?这将是一个服务器端组件。我需要使用这个打印驱动程序将文档打印到文件夹中。
我想知道怎样才能做到。
谢谢
根据您更新的评论,听起来好像您正在寻找将各种图像和文档类型转换为单个通用图像类型。将您提到的几种可能的源格式之一转换为位图格式(如. png)的过程称为RENDERING或RASTERIZING。您希望获取一种输入格式,将其呈现为位图表示,然后将其写入. png格式的文件。虽然使用打印驱动程序当然可以做到这一点,但要做到这一点,您通常需要依赖已安装的应用程序,该应用程序允许您将源文档传递给它,以便将其打印到驱动程序。要做到这一点,您希望能够以这种方式处理的每种源文件类型都需要安装一个应用程序,该应用程序可以从shell执行操作并执行您的请求。例如,如果您希望对. doc文件执行此操作,则需要安装Microsoft Word,因为它可以正确响应PRINT shell命令。然而,基于shell的方法的限制是,它总是要打印到默认的系统打印机。因此,需要将驱动程序设置为要在其上运行进程的机器的默认打印机。因此,您需要查看您希望能够处理的每种源类型是否都有一个已安装或可安装的应用程序,该应用程序将允许您使用shell和print动作动词打印它们。
参考网址:
Windows Shell动词和文件关联
创建快捷菜单处理程序
该技术的问题是,并非所有应用程序都正确响应PRINT谓词,或者根本就没有响应。这通常适用于所有主要的Microsoft应用程序,但在进一步使用此技术之前,您应该测试想要支持的任何其他文档类型。
这也提出了其他问题,这甚至没有开始解决,如如何处理多页面格式。您列出了一些直观的图像类型,可以非常直接地转换为PNG文件。但是如何将多页Word文档文件呈现为PNG格式呢?您是否打算只使用一个非常大的PNG,所有的页面一个接一个?或者您打算为每个相应的源文档页面提供一个PNG文件?打印驱动程序方法可能不会给你太多的控制。
根据这些细节以及过程中需要多少控制和可靠性,您可能想要考虑一个完全不同的过程路径。也许你应该考虑使用可以读取你想要支持的源文件格式的工具/库,然后直接渲染它们,之后你可以保存到你的PNG文件中。我过去使用过的一个库似乎适合并允许您对转换(渲染/光栅化)过程进行高度控制,它是LeadTools。这是一个相当昂贵的产品,但我使用它的经验是,它确实可靠地支持各种格式。
LeadTools PDF和文档阅读器SDK
可能有一些其他可用的开源工具,您可以将它们组合在一起来支持这种类型的功能,但我不熟悉任何工具,无法为您指出任何具体的内容。但希望这能给您提供一些信息,帮助您了解如何组合一个可能更可靠的进程,并为您提供更好的控制,而不是试图强迫打印机驱动程序做一些您可能无法可靠地工作的事情。
服务器端组件意味着没有人坐在那里(至少不是试图使用该打印机的人)。如果是这种情况,那么打印驱动程序将无法工作-打印驱动程序将输出写入磁盘而不是设备,以我的经验,总是要求用户选择一个位置来保存文件(呈现一个另存为对话框)。
详细说明一下Boo所提到的内容:
根据您使用的打印机驱动程序,您可以告诉它在哪里保存文件。
问题是通过使用打印机,它的正常工作方式是你可以从任何应用程序打印到。png文件。但是应用程序本身必须知道如何打开和呈现(而不是与打印机对话)原始文件的内容。
要继续这条路径,必须确保服务器组件知道如何读取和呈现每种文件类型(.jpg、。pdf、。doc等)的内容。
假设您的服务器组件知道如何呈现内容,那么下一步就是使用。net Printing命名空间将内容打印到。png打印机。
详细信息请访问:http://msdn.microsoft.com/en-us/magazine/cc188767.aspx