วิธีลบหน้าว่างใน Word โดยใช้ C#

วิธีลบหน้าว่างใน Word โดยใช้ C#

การสอนอย่างรวดเร็วนี้อธิบายวิธีการลบหน้าว่างจากเอกสาร Word (DOCX, DOC, ฯลฯ) โดยใช้ C# ขั้นตอนนี้เกี่ยวข้องกับการโหลดไฟล์ Word การวิเคราะห์แต่ละหน้า การระบุหน้าว่าง และสุดท้ายการสร้างเอกสารใหม่โดยไม่มีหน้าว่าง

ประโยชน์ของการลบหน้าว่างในเอกสาร Word

  1. เอกสารที่สะอาดขึ้น:
    • ช่วยเพิ่มความสามารถในการอ่านและความเป็นมืออาชีพ
  2. ขนาดไฟล์ที่ลดลง:
    • ประหยัดพื้นที่จัดเก็บโดยการกำจัดหน้าที่ไม่จำเป็น
  3. ความสามารถในการทำงานอัตโนมัติ:
    • เหมาะสำหรับการทำความสะอาดเอกสารขนาดใหญ่โดยอัตโนมัติ

ข้อกำหนดเบื้องต้น: การเตรียมสภาพแวดล้อม

  1. Visual Studio หรือ IDE .NET อื่น ๆ
  2. Aspose.Words ที่เพิ่มผ่าน NuGet Package Manager

คู่มือทีละขั้นตอนในการลบหน้าว่างใน Word โดยใช้ C#

ขั้นตอนที่ 1: ตั้งค่าสภาพแวดล้อม

ติดตั้งห้องสมุด Aspose.Words ผ่าน NuGet package manager

Install-Package Aspose.Words

ขั้นตอนที่ 2: โหลดเอกสาร Word

โหลดไฟล์ Word ดั้งเดิมของคุณโดยใช้วัตถุ Document

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

ขั้นตอนที่ 3: แยกแต่ละหน้าออกมา

วนรอบแต่ละหน้าและแยกแต่ละหน้าออกมาเป็นเอกสารแยกต่างหากเพื่อการวิเคราะห์

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // วิเคราะห์ singlePageDoc ในขั้นตอนถัดไป
}

ขั้นตอนที่ 4: วิเคราะห์เอกสารหน้าเดียว

ตรวจสอบว่าเอกสารหน้าเดียวมีข้อความหรือรูปร่างอยู่หรือไม่

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

ขั้นตอนที่ 5: รักษารายการหน้าที่ไม่ว่าง

ติดตามหมายเลขหน้าที่มีเนื้อหา

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

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i คือดัชนีหน้าในลูป

ขั้นตอนที่ 6: เพิ่มหน้าที่ไม่ว่างไปยังเอกสารใหม่

สร้างเอกสารใหม่และเพิ่มเฉพาะหน้าที่ไม่ว่างโดยใช้รายการที่ติดตาม

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

ขั้นตอนที่ 7: บันทึกเอกสารที่แก้ไข

บันทึกเอกสารใหม่โดยไม่มีหน้าว่าง

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

ตัวอย่างโค้ดทั้งหมดในการลบหน้าว่างใน Word โดยใช้ C#

ด้านล่างนี้คือโค้ดตัวอย่างที่สามารถนำไปใช้งานได้ซึ่งแสดงขั้นตอนข้างต้น:

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("ลบหน้าว่างสำเร็จแล้ว.");

สรุป

บทความนี้อธิบายวิธีการลบหน้าว่างในไฟล์ Word โดยใช้ C# โดยการทำตามขั้นตอนที่ให้ไว้ คุณสามารถตรวจจับหน้าว่างและลบออกได้อย่างมีประสิทธิภาพ ส่งผลให้เอกสารมีความสะอาดมากขึ้น คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Words สำหรับงานการจัดการเอกสาร Word อื่น ๆ ได้

 แบบไทย