Word Interop在不同计算机上的Save / SaveAs2上的表现不同

时间:2015-03-20 08:09:12

标签: c# .net pdf ms-word office-interop

我有以下代码将docx文件转换为pdf

MSWord.Application app = new MSWord.Application();
MSWord.Document doc = app.Documents.Open("C:/temp/mydoc.docx");
doc.Activate();
doc.Save("c:/temp/mydoc.pdf", WdSaveFormat.wdFormatPDF); //also tried with doc.SaveAs2(...)
((MSWord._Document)doc).Close(WdSaveOptions.wdDoNotSaveChanges);

这在我的电脑上完美运行(带有Office 2013的Win7 64b),但是当我在客户端计算机(带有Office 2013的Win8 64b)上运行它时,总是在执行{{时>显示一个文件管理器1}}或doc.Save()来电。 filedialog还默认使用Docx选项而不是PDF选项,导致用户必须手动选择它。

在filedialog中单击“确定”时,PDF正确创建,但仍然在doc.SaveAs2()doc.Save()方法中,出现错误“命令失败”。如果我将我的代码包装在try-catch中并在finally块中执行doc.SaveAs2()方法,我可以绕过错误,但这不是一个真正的解决方案(并且还没有该文件)。

有没有人知道什么可能导致弹出域名?是Win8的行为吗?

1 个答案:

答案 0 :(得分:1)

您需要使用Document类的ExportAsFixedFormat方法。它将文档保存为PDF或XPS格式。