使用Microsoft interOp对象,我可以以编程方式打印Word或Excel文档。
是否有任何更简单统一的方式以编程方式打印所有类型的文档(.txt,.doc,.xls,.pdf等)?
答案 0 :(得分:3)
Microsoft默认使用DDE从办公产品打印。 转到工具/文件夹选项/文件类型,然后查找.XLS,然后单击“高级”。 您将看到一个操作列表,其中一个是“打印”。 其中包含Excel用于打印然后关闭文档的DDE命令,并且Office套件中的每个产品都存在其中一个命令。 不幸的是,DDE使用SendMessage API,但是这里有一个库为你包装这些功能:
http://ndde.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=4828
它不再是更新,但如果您只想要一种通用的打印文档方式,它仍然可以满足您的需求。
如果您正在使用Interop并且已经打开了应用程序的实例,那么只需调用相应的PrintOut函数即可。例如对于Word,它是:
object nullobj = Missing.Value;
doc.PrintOut(ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
显然,互操作和DDE都远非理想的解决方案,但Office仍然基于与90年代相同的Win32核心。
一旦他们在托管代码中重新编码,我们就会有一套很好的通用接口来创建,打印和查看办公文档!
干杯, 杰森