Ce didacticiel rapide est conçu pour expliquer ** comment supprimer une page vierge dans Word à l’aide de C# ** comme DOCX, DOC, etc. Il fournit des détails pour configurer l’environnement ainsi que les étapes à effectuer pour le tâche et un exemple de code qui implémente la logique complète pour effacer une page vierge dans Word à l’aide de C#. Vous pouvez exécuter ce code sans installer de logiciel tiers à l’aide de l’un des systèmes d’exploitation tels que Windows, Linux ou macOS.
Étapes pour supprimer une page vide dans Word à l’aide de C#
- Configurez le projet pour ajouter la bibliothèque Aspose.Words dans le projet
- Chargez le fichier Word source dans l’objet de classe Document pour supprimer les pages vides
- Analyser toutes les pages du document source et récupérer chaque page séparément
- Créer un document séparé avec chaque page uniquement à partir du document source
- Analysez ce document d’une seule page et vérifiez si un section contient ou non un nœud de texte/forme
- Maintenir une liste de toutes les pages non vides du document d’origine
- Ajouter toutes les pages non vides au nouveau fichier Word
- Enregistrez ce fichier en ayant les pages uniquement avec du texte ou une forme
Ces étapes fournissent des détails pour supprimer la page vide dans Word à l’aide de C#. Tout d’abord, vous chargez le fichier Word source, puis vous analysez chacune de ses pages de sorte que pour chaque page, un nouveau document Word soit créé. Il est nécessaire car nous devons analyser chaque page séparément et les fonctionnalités de la classe Document nous aideront à identifier les pages non vides. Lors de l’analyse, chaque page non vide est ajoutée à un nouveau fichier Word qui contiendra toutes ces pages.
Code pour supprimer la page vierge dans Word à l’aide de C#
using System.Collections; | |
using Aspose.Words; | |
namespace DeleteABlankPageInWordUsingCSharp | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to delete a blank page in Word using CSharp | |
{ | |
// Instantiate the license to avoid any trial version limitations | |
// and watermark in the output Word file | |
Aspose.Words.License licDeleteBlankPages= new Aspose.Words.License(); | |
licDeleteBlankPages.SetLicense("Aspose.Words.lic"); | |
// Load the Word file having blank pages in it | |
Document originalDocWithFewBlankPages = new Document("WordFileWithBlankPages.docx"); | |
// Declare an array to store page numbers of the empty or blank pages | |
ArrayList listOfBlankPageNumbers = new ArrayList(); | |
listOfBlankPageNumbers.Add(-1); | |
// Extract each page of the loaded document as a separate Word document | |
int totalPagesInOriginalDoc = originalDocWithFewBlankPages.PageCount; | |
for (int iCount = 0; iCount < totalPagesInOriginalDoc; iCount++) | |
{ | |
// Create a new Word document containing the single page | |
Document DocWithOnePage = originalDocWithFewBlankPages.ExtractPages(iCount, 1); | |
// Parse through all the sections of the newly created document | |
// to count text segments and shapes if any | |
int shapesCounter = 0; | |
string pageText = ""; | |
foreach (Section docSection in DocWithOnePage.Sections) | |
{ | |
// Extract text from the section and also get shapes count in the newly created document | |
pageText = pageText + docSection.Body.ToString(SaveFormat.Text); | |
shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count; | |
} | |
// Check if the extracted page is null or not and also check if shapes count is 0 or not | |
// If text is blank and shapes count is 0, it means the page is blank | |
if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0) | |
listOfBlankPageNumbers.Add(iCount); | |
} | |
listOfBlankPageNumbers.Add(totalPagesInOriginalDoc); | |
// Add all the non-empty pages to the final document | |
Document nonEmptyDocument = (Document)originalDocWithFewBlankPages.Clone(false); | |
nonEmptyDocument.RemoveAllChildren(); | |
for (int iCount = 1; iCount < listOfBlankPageNumbers.Count; iCount++) | |
{ | |
int index = (int)listOfBlankPageNumbers[iCount - 1] + 1; | |
int count = (int)listOfBlankPageNumbers[iCount] - index; | |
if (count > 0) | |
nonEmptyDocument.AppendDocument(originalDocWithFewBlankPages.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting); | |
} | |
// Save the output file having all the non-empty pages | |
nonEmptyDocument.Save(@"NonEmptyPages.docx"); | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
Ce code pour * supprimer la page vierge du document Word à l’aide de C# * décrit la logique complète dans laquelle chaque page du fichier Word source est enregistrée dans un nouveau fichier Word, puis analysée pour tout contenu qu’il contient. Au cours de ce processus, les en-têtes et les pieds de page ne sont pas pris en compte, mais vous pouvez également les inclure. Une fois que toutes les pages sont analysées et que leurs numéros sont enregistrés dans un tableau, ce tableau est utilisé pour ajouter toutes ces pages à un nouveau fichier Word.
Dans ce didacticiel, nous avons supprimé toutes les pages vierges d’un fichier Word. Si vous souhaitez découvrir d’autres fonctionnalités telles que la conversion de documents Word en HTML, reportez-vous à l’article sur comment convertir un document Word en HTML en utilisant C#.