Ten krótki samouczek ma na celu wyjaśnienie jak usunąć pustą stronę w programie Word za pomocą języka C#, takiego jak DOCX, DOC itp. Zawiera szczegółowe informacje na temat konfigurowania środowiska wraz z krokami, które należy wykonać dla zadanie i przykładowy kod, który implementuje pełną logikę wymazywania pustej strony w programie Word przy użyciu języka C#. Możesz uruchomić ten kod bez instalowania oprogramowania innych firm przy użyciu dowolnego systemu operacyjnego, takiego jak Windows, Linux lub macOS.
Kroki, aby usunąć pustą stronę w programie Word przy użyciu języka C#
- Skonfiguruj projekt, aby dodać bibliotekę Aspose.Words do projektu
- Załaduj źródłowy plik programu Word do obiektu klasy Document, aby usunąć puste strony
- Przeanalizuj wszystkie strony w dokumencie źródłowym i pobierz każdą stronę osobno
- Utwórz osobny dokument z każdą pojedynczą stroną tylko z dokumentu źródłowego
- Przeanalizuj ten jednostronicowy dokument i sprawdź, czy którykolwiek section zawiera jakiś węzeł tekstu/kształtu, czy nie
- Zachowaj listę wszystkich niepustych stron w oryginalnym dokumencie
- Dołącz wszystkie niepuste strony do nowego pliku programu Word
- Zapisz ten plik, mając strony tylko z jakimś tekstem lub kształtem
Te kroki zawierają szczegółowe informacje na temat usuwania pustej strony w programie Word przy użyciu języka C#. Najpierw ładujesz źródłowy plik programu Word, a następnie analizujesz każdą z zawartych w nim stron w taki sposób, że dla każdej strony tworzony jest nowy dokument programu Word. Jest to wymagane, ponieważ musimy analizować każdą stronę z osobna, a cechy klasy Document pomogą nam zidentyfikować niepuste strony. Podczas analizowania każda niepusta strona jest dodawana do nowego pliku programu Word, który będzie zawierał wszystkie takie strony.
Kod do usunięcia pustej strony w programie Word przy użyciu języka 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"); | |
} | |
} | |
} |
Ten kod do usuwania pustej strony z dokumentu programu Word przy użyciu języka C# opisuje pełną logikę, w której każda strona źródłowego pliku programu Word jest zapisywana w nowym pliku programu Word, a następnie analizowana pod kątem zawartości w nim zawartej. Podczas tego procesu nagłówki i stopki nie są brane pod uwagę, ale możesz je również uwzględnić. Po przeanalizowaniu wszystkich stron i zapisaniu ich numerów w tablicy, ta tablica jest używana do dołączenia wszystkich tych stron do nowego pliku Word.
W tym samouczku usunęliśmy wszystkie puste strony z pliku Word. Jeśli chcesz poznać inne funkcje, takie jak konwertowanie dokumentów programu Word do formatu HTML, zapoznaj się z artykułem na stronie jak przekonwertować dokument Worda na HTML za pomocą C#.