Могу ли я использовать Microsoft.Office.Interop.Word .dll в Silverlight для манипулирования файлом SaveDialogFile в MSWord? - PullRequest
1 голос
/ 18 ноября 2011

У меня проблема с созданием приложения silverlight, мне нужно создать документ Word с использованием silverlight и Сохранить его непосредственно в базе данных с помощью кнопки Сохранить по умолчанию в MSWord , но затем Я не могу использовать "Microsoft.Office.Interop.Word .dll" в silverlight для манипулирования SaveFileDialog, чтобы я мог задать путь по умолчанию при сохранении ..

Другой вопрос, Могу ли я скрыть или установить MSWord SaveFileDialog = false в Silverlight, используя Microsoft.Office.Interop.Word .dll? , потому что другой мой план заключается в том, чтобы создать настраиваемое поле savefiledialog в Silverlight и не использовать окно MSFord SaveFileDialog ..?

Я использую бета-версию Silverlight 5, есть ли проблемы с совместимостью при использовании другой версии MS Office .?

 public partial class MainPage : UserControl
 {
     dynamic objWord;
     dynamic document;
     dynamic range;
     static bool saveDoc = false;

     public MainPage()
     {
         InitializeComponent();
         objWord = AutomationFactory.CreateObject("Word.Application"); 
         AutomationEvent saveEvent = AutomationFactory.GetEvent(objWord, "DocumentBeforeSave");
         saveEvent.EventRaised += (s, args) =>
         {
             saveDoc = true;

             if (saveDoc == true)
             {
                 SaveFileDialog dlg = new SaveFileDialog();
                 dlg.DefaultExt = ".doc"; // Default file extension
                 dlg.Filter = "Word documents (.doc)|*.doc"; // Filter files by extension
                 Nullable<bool> result = dlg.ShowDialog();

                 if (result == true)
                 {
                     string filename = dlg.SafeFileName;
                     FileInfo aD = new FileInfo(filename);
                     string pathDoc = aD.DirectoryName.ToString();
                     MessageBox.Show(pathDoc); //trying to get the path so that i can flush it to memory stream
                 }
             }
         };
     }

     private void Button_Click(object sender, RoutedEventArgs e)
     {
         if (AutomationFactory.IsAvailable)
         {
             try
             {
                 document = objWord.Documents.Add();
                 object startIndex = 0;
                 range = document.Range(ref startIndex);
                 objWord.Visible = true;
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
     }
}

Заранее спасибо :) Боже, благослови

1 Ответ

1 голос
/ 18 ноября 2011

Вы можете получить доступ к Word / Excel / Outlook, если ваше приложение Silverlight. находится в FullTrust и OutOfBrowser.

Вот вам хороший пример с Excel

...