首页 > 解决方案 > C# Word 互操作 - 打开没有转换提示的 .pdf

问题描述

我正在使用 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。

有谁知道如何绕过这个?如果我单击“确定”,则程序的其余部分将按预期成功执行。

我知道并且不希望使用任何其他第三方工具。


感谢 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 是否正在等待用户输入和发送密钥。

标签: c#ms-wordword-interop

解决方案


推荐阅读