Deze korte handleiding is bedoeld om uit te leggen hoe u lege pagina’s in Word verwijdert met C# zoals DOCX, DOC, enz. Het biedt details om de omgeving te configureren samen met de stappen die moeten worden uitgevoerd voor de taak en een voorbeeldcode die de volledige logica implementeert om blanco pagina’s in Word te wissen met C#. U kunt deze code uitvoeren zonder software van derden te installeren met behulp van een van de besturingssystemen zoals Windows, Linux of macOS.
Stappen om lege pagina in Word te verwijderen met C#
- Configureer het project om de Aspose.Words bibliotheek aan het project toe te voegen
- Laad het bron-Word-bestand in het Document klasseobject om lege pagina’s te verwijderen
- Doorzoek alle pagina’s in het brondocument en haal elke pagina afzonderlijk op
- Maak een apart document met elke afzonderlijke pagina alleen van het brondocument
- Analyseer dit document van één pagina en controleer of een section een tekst-/vormknooppunt bevat of niet
- Houd een lijst bij van alle niet-lege pagina’s in het originele document
- Voeg alle niet-lege pagina’s toe aan het nieuwe Word-bestand
- Sla dit bestand op met de pagina’s alleen met wat tekst of vorm
Deze stappen bevatten details om de lege pagina in Word te verwijderen met C#. Eerst laadt u het bron-Word-bestand en parseert u vervolgens alle pagina’s erin, zodat voor elke pagina een nieuw Word-document wordt gemaakt. Het is vereist omdat we elke pagina afzonderlijk moeten analyseren en de kenmerken van de Document-klasse zullen ons helpen de niet-lege pagina’s te identificeren. Tijdens het parseren wordt elke niet-lege pagina toegevoegd aan een nieuw Word-bestand dat al deze pagina’s zal bevatten.
Code om de lege pagina in Word te verwijderen met 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"); | |
} | |
} | |
} |
Deze code om lege pagina uit Word-document te verwijderen met C# beschrijft de volledige logica waarbij elke pagina van het bron-Word-bestand wordt opgeslagen in een nieuw Word-bestand en vervolgens wordt geanalyseerd op inhoud erin. Tijdens dit proces wordt er geen rekening gehouden met de kop- en voetteksten, maar u kunt deze ook opnemen. Nadat alle pagina’s zijn geanalyseerd en hun nummers in een array zijn opgeslagen, wordt deze array gebruikt om al die pagina’s aan een nieuw Word-bestand toe te voegen.
In deze zelfstudie hebben we alle lege pagina’s uit een Word-bestand verwijderd. Als je een andere functionaliteit wilt leren, zoals het converteren van Word-documenten naar HTML, raadpleeg dan het artikel op hoe een Word-document naar HTML te converteren met C#.