2010-03-25 2 views
3

У меня возникли трудности с объединением нескольких документов Word вместе с помощью Microsoft Office Interop Assemblies (Office 2007) и ASP.NET 3.5. Я могу объединить документы, но некоторые из моих форматирования отсутствуют (а именно, шрифты и изображения).Слияние документов Word (Office Interop & .NET), Сохранение форматирования

Ниже приведен мой текущий код слияния.

private void CombineDocuments() { 
     object wdPageBreak = 7; 
     object wdStory = 6; 
     object oMissing = System.Reflection.Missing.Value; 
     object oFalse = false; 
     object oTrue = true; 
     string fileDirectory = @"C:\documents\"; 

     Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application(); 
     Microsoft.Office.Interop.Word.Document wDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); 

     string[] wordFiles = Directory.GetFiles(fileDirectory, "*.doc"); 
     for (int i = 0; i < wordFiles.Length; i++) { 
      string file = wordFiles[i]; 
      wDoc.Application.Selection.Range.InsertFile(file, ref oMissing, ref oMissing, ref oMissing, ref oFalse); 
      wDoc.Application.Selection.Range.InsertBreak(ref wdPageBreak); 
      wDoc.Application.Selection.EndKey(ref wdStory, ref oMissing); 
     } 
     string combineDocName = Path.Combine(fileDirectory, "Merged Document.doc"); 
     if (File.Exists(combineDocName)) 
      File.Delete(combineDocName); 
     object combineDocNameObj = combineDocName; 
     wDoc.SaveAs(ref combineDocNameObj, ref m_WordDocumentType, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 
    } 

Мне все равно, как это делается. Он может выводиться через PDF, если это необходимо. Я просто хочу, чтобы форматирование переносилось.

+0

Никогда не используйте Управление Interop от приложение ASP.NET. См. [Соображения для автоматизации на стороне сервера Office] (http://support.microsoft.com/kb/257757) –

+0

Продвинутый голос и проголосовали за закрытие, потому что, как есть, кто-то решит, что этот вопрос означает, что это нормально используйте Office Interop из ASP.NET. –

ответ

-1

При добавлении документов вы пропускаете имя шаблона, поэтому для ut отсутствует формат.

Это должно выглядеть

string defaultTemplate="your template name with full path"; 

ИЛИ

По умолчанию имя шаблона

string defaultTemplate="Normal.dot"; 

wordApplication.Documents.Add(ref defaultTemplate,............ 

Используйте эту ссылку как Ref: http://devpinoy.org/blogs/keithrull/archive/2007/05/23/how-to-merge-multiple-microsoft-word-documents-in-c.aspx