c# - 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 是否正在等待用户输入和发送密钥。
解决方案
推荐阅读
- python - Python中不可变对象的类型是什么(对于mypy)
- javascript - Cssnano 不会删除重复项
- angular - agGrid 以编程方式配置
- javascript - JavaScript 原型继承不起作用
- python-3.x - 自动递增文件名失败时写入多个文件(python 3.6)
- android - 如何以编程方式将 textView 的颜色更改为保存在属性文件中的颜色?
- javascript - D3js V4 - 如何缩放散点图矩阵图
- php - 允许延期交货并通知客户在 Woocommerce 中的父产品类别
- html - 如何确保该名称适合网站上的指定空间
- python - 如何在没有递归的情况下展平嵌套字典?