Microsoft 默认使用 DDE 从办公产品进行打印。
转到工具/文件夹选项/文件类型,然后查找 .XLS 例如并单击“高级”。
您将看到一系列操作,其中之一是“打印”。
其中包含 Excel 用于打印然后关闭文档的 DDE 命令,Office 套件中的每个产品都存在这些命令之一。
不幸的是,DDE 使用 SendMessage API,但这里有一个库可以为您包装这些函数:
http://ndde.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=4828 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 核心。
一旦他们用托管代码重新编码,我们将拥有一组很好的通用界面,用于创建、打印和查看办公文档!
干杯,
贾森