La réponse courte à votre question est qu'il n'y a pas élégante façon de faire ce que vous essayez d'atteindre. Word sépare fortement le contenu d'un document de sa mise en page. En ce qui concerne Word, un document n'a pas de pages; plutôt, les pages sont quelque chose dérivé d'un document en le visualisant d'une certaine manière (par exemple une vue d'impression). La collection Pages
appartient à l'interface Pane
(accessible, par exemple, par Application.ActiveWindow.ActivePane
), qui contrôle la disposition. Par conséquent, il n'y a aucune méthode sur Page
qui vous permet de modifier (ou supprimer) le contenu qui mène à l'existence de la page.
Si vous contrôlez le (s) document (s) que vous traitez dans votre code, je vous suggère de définir des sections dans le document qui représentent les parties que vous voulez supprimer par programmation. Les sections sont une meilleure construction car elles représentent le contenu, pas la mise en page (une section peut, à son tour, contenir des sauts de page). Si vous deviez le faire, vous pouvez utiliser le code suivant pour supprimer une section spécifique:
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;
}
}
Il est logique que Microsoft n'utilise pas les pages en tant que telles en raison des différentes dispositions/vues qu'un document Word peut avoir. J'espère juste qu'il y a un moyen plus facile que d'avoir à utiliser les gammes. – Koekiebox
Je sais qu'il n'utilise pas Interop, mais ces gars-là ont de belles bibliothèques pour ce qui précède: http://www.aspose.com/categories/java-components/default.aspx – Koekiebox