В чем проблема в этом утверждении? - PullRequest
7 голосов
/ 11 октября 2010

Я пишу пример приложения для преобразования файла DOC в PDF.При этом я получаю сообщение об ошибке.

// Creating the instance of WordApplication
MSDOC = new Microsoft.Office.Interop.Word.ApplicationClass();
try
{
    MSDOC.Visible = false;
    MSDOC.Documents.Open(ref Source, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
    MSDOC.Application.Visible = false;
    MSDOC.WindowState = Microsoft.Office.Interop.Word
                                 .WdWindowState.wdWindowStateMaximize;
    object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Message from Sample");
}

И вот заявление, в котором я получаю сообщение об ошибке:

object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;

Ошибка типа взаимодействия "Microsoft.Office.Interop.Word.ApplicationClass 'не может быть встроен.Вместо этого используйте соответствующий интерфейс.

Ответы [ 3 ]

14 голосов
/ 11 октября 2010

Вы пытались делать то, что предлагает сообщение об ошибке?Заменить

MSDOC = new Microsoft.Office.Interop.Word.ApplicationClass();

на

Microsoft.Office.Interop.Word.Application MSDOC;
MSDOC = new Microsoft.Office.Interop.Word.Application();
6 голосов
/ 11 октября 2010

Попробуйте MSDOC = new Microsoft.Office.Interop.Word.Application(); вместо .ApplicationClass().

0 голосов
/ 05 июля 2014

, если вам не нужна пользовательская обработка событий приложения слов, делайте так, как рекомендует 0xA3 в противном случае оставьте ApplicationClass как есть, но перейдите к ссылке на проект: выберите MIcrosoft.Office.Interop.Word, свойства и изменить встроенную форму Ture на False Обязательно добавьте office.dll из офиса 2003 или это PIA

...