Я использую 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);
Однако при открытии я получаю следующее приглашение:
Word version 2016.
Кто-нибудь знает, как это обойти? Если я нажму OK, остальная часть программы выполнится так, как я ожидаю, успешно.
Я знаю и не хочу использовать какие-либо другие сторонние инструменты.
Спасибо 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);
Получается конвертер, нопо-прежнему отображает подсказку. :(
Дальнейшее редактирование благодаря комментариям Сидни. Похоже, что это приглашение является параметром реестра пользователей, поскольку обойти его во взаимодействии невозможно. Для меня это похоже на ошибку в взаимодействии. Open XML SDK не поддерживает сохранение в формате XPS, так что это тоже недоступно. Похоже, мне сначала придется манипулировать реестром пользователей, чтобы добиться этого (приводит к проблемам с правами на запись) или проверить, ожидает ли Word ввода данных от пользователя и отправки ключей.