Короткий ответ на ваш вопрос заключается в том, что не существует элегантного способа сделать то, что вы пытаетесь достичь.
Word сильно отделяет содержимое документа от его макета.Что касается Word, документ не имеет страниц;скорее страницы - это что-то, полученное из документа путем его просмотра определенным образом (например, просмотр в печати).Коллекция Pages
принадлежит интерфейсу Pane
(доступному, например, Application.ActiveWindow.ActivePane
), который управляет макетом.Следовательно, в Page
нет методов, которые позволили бы вам изменить (или удалить) контент, который приводит к существованию страницы.
Если у вас есть контроль над документом (ами), который вы обрабатываетев вашем коде я предлагаю вам определить в документе разделы, представляющие части, которые вы хотите программно удалить.Разделы являются лучшей конструкцией, потому что они представляют контент, а не макет (раздел, в свою очередь, может содержать разрывы страниц).Если бы вы сделали это, вы могли бы использовать следующий код для удаления определенного раздела:
object missing = Type.Missing;
foreach (Microsoft.Office.Interop.Word.Section section in doc.Sections) {
if (/* some criteria */) {
section.Range.Delete(ref missing, ref missing);
break;
}
}