我的C# Windows应用程序需要静默打印办公文档(没有弹出对话框或打开Word,Excel等应用程序)。所以我正在尝试找到一种在没有办公室的情况下打印办公文档的方法(否则用户也需要购买办公包才能使用我的应用程序)。
- 我尝试使用
Aspose.NET
但是似乎该组件忽略了文档的某些部分(例如注释,注释)。 - 我也尝试过
Microsoft Office 2010: Primary Interop Assemblies Redistributable
.但是,正如我发现使用MS Office PIAs一样,MS Office需要安装在目标计算机中。
有什么想法我应该在哪里研究?
首先,您应该了解MSOffice使用专有格式,在这种情况下,他最好的开源办公软件在阅读时遇到问题而不会搞砸某些东西。
我的建议是 - 你要么采取造成最小伤害的东西,要么需要办公室。一个建议是:Microsoft用来制作"单词阅读器"和"excel阅读器",试着看看它们是否仍在发布。
另一个想法是找到一个免费的办公室到pdf或办公室到xps转换软件,将其包含在您的程序中并打印。
在我看来,最困难的方法是将文档提供给某些在线服务,例如Skydrive的文档阅读器,并请求它打印文件。
根据应用程序的不同,最好的选择可能是将内容保存到 Open XML 并对其进行解析(请注意,根据我的经验,以该格式保存的较大文档中有很多膨胀)或简单地保存到 PDF。
另一个更笨拙但更独立的可能性是使用 control.click 等来构建一个自动点击器,该点击器在外部免费软件应用程序中打开内容并打印出来。 最引人注目的选项是Microsoft的"查看器"应用程序(如果可用)。 当它不适用于特定文档类型时,Microsoft建议将 OneDrive 作为免费软件替代方案(需要帐户、互联网连接)。
- Word -- "查看器"已停用,查找旧版本或使用 OneDrive
- Excel -- "查看器"可用
- PowerPoint -- "查看器"可用
如果您不想使用第三方应用程序,这可能会为您提供一条创造性的、笨拙的途径来实现您发布的目标。 祝你好运!