Cách Xóa Trang Trống trong Word Sử Dụng C#

Cách Xóa Trang Trống trong Word Sử Dụng C#

Hướng dẫn nhanh này giải thích cách loại bỏ các trang trống khỏi các tài liệu Word (DOCX, DOC, v.v.) bằng cách sử dụng C#. quá trình này liên quan đến việc tải một tệp Word, phân tích các trang cá nhân, xác định các trang trống, và cuối cùng tạo ra một tài liệu mới mà không có các trang trống.

Lợi ích của việc xóa các trang trắng trong các tài liệu Word

  • Tài liệu thanh lọc:- Cải thiện khả năng đọc và chuyên môn.

  • Giảm kích thước tệp:- Lưu trữ hiệu quả bằng cách loại bỏ các trang không cần thiết.

  • Khả năng tự động hóa:- Tốt nhất để tự động làm sạch các tài liệu lớn.

Chủ đề: Chuẩn bị môi trường

  • Visual Studio hoặc .NET IDE khác.
  • Thêm Aspose.Words thông qua NuGet Package Manager.

Hướng dẫn từng bước để xóa các trang trắng trong Word bằng cách sử dụng C#

Bước 1: Thiết lập môi trường

Cài đặt thư viện Aspose.Words thông qua quản lý gói NuGet.

Install-Package Aspose.Words

Bước 2: Tải tài liệu từ

Tải xuống tệp Word ban đầu của bạn bằng cách sử dụng đối tượng lớp Tài liệu.

Document originalDoc = new Document("WordFileWithBlankPages.docx");

Bước 3: Hiển thị mỗi trang riêng biệt

Đi qua mỗi trang và trích xuất mỗi trang vào một tài liệu riêng biệt để phân tích.

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // Analyze singlePageDoc in next steps
}

Bước 4: Phân tích tài liệu một trang

Kiểm tra xem tài liệu một trang có chứa văn bản hay hình dạng.

int shapesCounter = 0;
string pageText = "";

foreach (Section docSection in singlePageDoc.Sections)
{
    pageText += docSection.Body.ToString(SaveFormat.Text);
    shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
}

Bước 5: Giữ danh sách các trang không trống

Giữ theo số trang chứa nội dung.

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i is page index in loop

Bước 6: Thêm các trang không trống vào tài liệu mới

Tạo một tài liệu mới và bổ sung chỉ các trang không trống bằng cách sử dụng danh sách theo dõi.

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

blankPages.Add(totalPages);

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

Bước 7: Lưu tài liệu được sửa đổi

Lưu tài liệu mới với các trang trắng bị xóa.

finalDoc.Save(@"cleaned.docx");

Ví dụ mã đầy đủ để xóa các trang trắng trong Word bằng cách sử dụng C#

Dưới đây là ví dụ mã thực hiện đầy đủ cho thấy các bước trên:

Document originalDoc = new Document("WordFileWithBlankPages.docx");

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    int shapesCounter = 0;
    string pageText = "";

    foreach (Section docSection in singlePageDoc.Sections)
    {
        pageText += docSection.Body.ToString(SaveFormat.Text);
        shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
    }

    if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
        blankPages.Add(i);
}

blankPages.Add(totalPages);

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

finalDoc.Save(@"NonEmptyPages.docx");
System.Console.WriteLine("Blank pages removed successfully.");

Kết luận

Bài viết này giải thích làm thế nào để loại bỏ các trang trống trong các tệp Word bằng cách sử dụng C#. bằng cách làm theo các bước được cung cấp, bạn có thể lập trình phát hiện các trang trống và loại bỏ chúng, dẫn đến một tài liệu sạch hơn.

 Tiếng Việt