我正在使用 Word Interop,希望打开 .pdf 文件并让 Word 自动进行转换。
我设置了以下属性。
var wordApp = new Word.Application();
wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
wordApp.Options.DoNotPromptForConvert = true;
wordApp.Options.ConfirmConversions = false;
var doc = wordApp.Documents.OpenNoRepairDialog(ExternalFilePath, false, true);
但是,当它打开时,我仍然收到以下提示:
2016年Word版本。
有谁知道如何绕过这个?如果我单击“确定”,程序的其余部分将按我的预期成功执行。
我知道并且不希望使用任何其他第三方工具。
感谢 BugFinder 建议使用 Format 参数,但仍然没有成功。
以下是对代码的补充:
Word.FileConverters converters = wordApp.FileConverters;
var wordPdfConverter = converters.OfType<Word.FileConverter>().Where(c => c.CanOpen == true && c.Extensions == "pdf").First();
var doc = wordApp.Documents.OpenNoRepairDialog(ExternalFilePath, false, true, false, Format: wordPdfConverter.OpenFormat, NoEncodingDialog: true);
这会得到一个转换器,但仍然显示提示。 :(
感谢 Cidney 的评论,进一步编辑。该提示似乎是用户注册表设置,因为在互操作中绕过它是不可能的。对我来说,这似乎是互操作性的一个缺陷。 Open XML SDK 不支持另存为 XPS,因此该功能也不可用。看来我必须首先操作用户注册表才能实现此目的(带来写入权限问题)或检查 Word 是否正在等待用户输入并发送密钥。