2013-05-23 2 views
2

Я создал документ слова, который генерирует динамическое содержимое, используя word.interop. У этого есть перерывов страницы Используется между ними. в чем проблема, с которой я столкнулся, эта страница разбивается, создает пустые страницы, которые я не хочу показывать пользователям.Удаление пустой страницы в документе Word с использованием microsoft word.interop

В некоторых случаях мне нужны эти разрывы страниц там, чтобы поддерживать макет страницы, поэтому я не могу думать об удалении этих разрывов страниц. но то, что я хочу, - это другое решение, например, если нет содержимого на определенной странице, кроме разрыва страницы, удалите эту страницу.

Как я могу сделать это, пожалуйста, помогите .. Заранее спасибо ..

ответ

0

AHM довольно легко: просто посмотреть на странице и если единственный пункт, там содержится только перенос страницы - удаление страницы (или более аккуратно: сохраните пустые страницы в списке, удалите в один шаг в конце истории): Я не могу предоставить вам код, потому что нет образца кода.

+0

благодарит Christian Sauer за ответ, я проверить таким образом. Раньше я изо всех сил пытался найти начало и конец страницы, чтобы прочитать ее содержимое абзаца этой единственной страницы. Но я нашел одно решение. Я буду применять ваше предложение вместе с этим кодом. Еще раз спасибо. –

0
private bool RemoveBlankPage() 
    { 
     Word.Application wordapp = null; 
     Word.Document doc = null; 
     Word.Paragraphs paragraphs=null; 
     try 
     { 
      // Start Word APllication and set it be invisible 
      wordapp = new Word.Application(); 
      wordapp.Visible = false; 
      doc = wordapp.Documents.Open(wordPath); 
      paragraphs = doc.Paragraphs; 
      foreach (Word.Paragraph paragraph in paragraphs) 
      { 
       if (paragraph.Range.Text.Trim() == string.Empty) 
       { 
        paragraph.Range.Select(); 
        wordapp.Selection.Delete(); 
       } 
      } 

      // Save the document and close document 
      doc.Save(); 
      ((Word._Document)doc).Close(); 

      // Quit the word application 
      ((Word._Application)wordapp).Quit(); 

     } 
     catch(Exception ex) 
     { 
      MessageBox.Show("Exception Occur, error message is: "+ex.Message); 
      return false; 
     } 
     finally 
     { 
      // Clean up the unmanaged Word COM resources by explicitly 
      // call Marshal.FinalReleaseComObject on all accessor objects 
      if (paragraphs != null) 
      { 
       Marshal.FinalReleaseComObject(paragraphs); 
       paragraphs = null; 
      } 
      if (doc != null) 
      { 
       Marshal.FinalReleaseComObject(doc); 
       doc = null; 
      } 
      if (wordapp != null) 
      { 
       Marshal.FinalReleaseComObject(wordapp); 
       wordapp = null; 
      } 
     } 

     return true; 
    } 

Эта ссылка помогла мне завершить мой проект

https://code.msdn.microsoft.com/office/How-to-remove-blank-pages-e200755d

Смежные вопросы