Как удалить пустую страницу в Word с помощью C#

Это краткое руководство предназначено для того, чтобы объяснить, как удалить пустую страницу в Word с помощью C#, например DOCX, DOC и т. д. задачу и пример кода, который реализует полную логику для удаления пустой страницы в Word с помощью C#. Вы можете запустить этот код без установки какого-либо стороннего программного обеспечения, используя любую из операционных систем, таких как Windows, Linux или macOS.

Шаги по удалению пустой страницы в Word с помощью С#

  1. Настройте проект, чтобы добавить библиотеку Aspose.Words в проект.
  2. Загрузите исходный файл Word в объект класса Document, чтобы удалить пустые страницы.
  3. Проанализируйте все страницы в исходном документе и извлеките каждую страницу отдельно
  4. Создайте отдельный документ с каждой отдельной страницей только из исходного документа
  5. Проанализируйте этот одностраничный документ и проверьте, содержит ли какой-либо section какой-либо узел текста/формы или нет.
  6. Ведение списка всех непустых страниц в исходном документе
  7. Добавьте все непустые страницы в новый файл Word.
  8. Сохраните этот файл со страницами только с текстом или формой.

Эти шаги содержат подробные сведения об удалении пустой страницы в Word с помощью C#. Сначала вы загружаете исходный файл Word, а затем анализируете каждую из его страниц таким образом, что для каждой страницы создается новый документ Word. Это необходимо, потому что мы должны анализировать каждую страницу отдельно, а возможности класса Document помогут нам определить непустые страницы. При парсинге каждая непустая страница добавляется в новый файл Word, который будет содержать все такие страницы.

Код для удаления пустой страницы в Word с помощью С#

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");
}
}
}

Этот код для удаления пустой страницы из документа Word с помощью C# описывает полную логику, при которой каждая страница исходного файла Word сохраняется в новый файл Word, а затем анализируется на наличие любого содержимого в нем. Во время этого процесса верхние и нижние колонтитулы не учитываются, однако вы также можете включить их. После того, как все страницы проанализированы и их номера сохранены в массиве, этот массив используется для добавления всех этих страниц в новый файл Word.

В этом уроке мы удалили все пустые страницы из файла Word. Если вы хотите узнать о некоторых других функциях, таких как преобразование документов Word в HTML, обратитесь к статье как преобразовать документ Word в HTML с помощью C#.

 Русский