Denna snabba handledning är utformad för att förklara hur man tar bort tom sida i Word med C# som DOCX, DOC, etc. Den ger detaljer för att konfigurera miljön tillsammans med de steg som ska utföras för uppgift och en exempelkod som implementerar den fullständiga logiken för att radera tom sida i Word med C#. Du kan köra den här koden utan att installera någon programvara från tredje part med något av operativsystemen som Windows, Linux eller macOS.
Steg för att ta bort tom sida i Word med C#
- Konfigurera projektet för att lägga till Aspose.Words-biblioteket i projektet
- Ladda in Word-källfilen i klassobjektet Document för att ta bort tomma sidor
- Läs igenom alla sidor i källdokumentet och hämta varje sida separat
- Skapa ett separat dokument med endast varje sida från källdokumentet
- Analysera detta ensidiga dokument och kontrollera om någon section innehåller någon text-/formnod eller inte
- Håll en lista över alla icke-tomma sidor i originaldokumentet
- Lägg till alla icke-tomma sidor till den nya Word-filen
- Spara den här filen med bara sidorna med viss text eller form
Dessa steg ger detaljer för att ta bort den tomma sidan i Word med C#. Först laddar du källfilen i Word och sedan analyserar du var och en av sidorna i den så att ett nytt Word-dokument skapas för varje sida. Det krävs eftersom vi måste analysera varje sida separat och funktionerna i klassen Document hjälper oss att identifiera de icke-tomma sidorna. Under analysen läggs varje icke-tom sida till i en ny Word-fil som kommer att innehålla alla sådana sidor.
Kod för att ta bort den tomma sidan i Word med 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"); | |
} | |
} | |
} |
Denna kod för att ta bort tom sida från Word-dokument med C# beskriver den fullständiga logiken där varje sida i Word-källfilen sparas i en ny Word-fil och sedan analyseras för innehåll i den. Under denna process beaktas inte sidhuvuden och sidfötter, men du kan även inkludera dem. När alla sidor har analyserats och deras nummer har sparats i en array, används denna array för att lägga till alla dessa sidor till en ny Word-fil.
I den här handledningen tog vi bort alla tomma sidor från en Word-fil. Om du vill lära dig några andra funktioner som att konvertera Word-dokument till HTML, se artikeln om hur man konverterar Word-dokument till HTML med C#.