Bagaimana untuk menghapuskan Halaman Putih dalam Word menggunakan C#

Bagaimana untuk menghapuskan Halaman Putih dalam Word menggunakan C#

Tutorial cepat ini menerangkan bagaimana untuk menghapuskan halaman kosong daripada dokumen Word (DOCX, DOC, dan lain-lain) menggunakan C#. Proses ini melibatkan muat naik fail Word, menganalisis halaman individu, mengenal pasti halaman yang kosong dan akhirnya mencipta dokumen baru tanpa halaman putih.

Kelebihan Menghilangkan Halaman Putih Dalam Dokumen Word

  • Dokumen Pembersihan :- Meningkatkan kebolehbacaan dan profesionalisme.

  • Ukuran fail yang dikurangkan:- Penyimpanan yang berkesan dengan menghapuskan halaman yang tidak perlu.

  • Keupayaan automatik :- Ideal untuk membersihkan dokumen besar secara automatik.

Tag: persiapan persekitaran

  • Visual Studio atau lain-lain .NET IDE.
  • Aspose.Words ditambah melalui NuGet Package Manager.

Langkah-langkah panduan untuk menghapuskan halaman putih dalam Word menggunakan C#

Langkah 1 : Menyediakan persekitaran

Pemasangan perpustakaan Aspose.Words melalui pengurus pakej NuGet.

Install-Package Aspose.Words

Langkah 2: Muat turun dokumen perkataan

Muat turun fail Word asal anda menggunakan objek Kelas Dokumen.

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

Langkah 3: Mengekstrak setiap halaman secara berasingan

Melompat melalui setiap halaman dan mengekstrak masing-masing halaman ke dalam Dokumen yang berasingan untuk analisis.

int totalPages = originalDoc.PageCount;

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

Langkah 4: Menganalisis dokumen satu halaman

Semak sama ada dokumen satu halaman mengandungi teks atau bentuk.

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

Langkah 5: Mengekalkan senarai halaman yang tidak kosong

Ikuti nombor halaman yang mengandungi kandungan.

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

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

Langkah 6: Menambah halaman bukan kosong ke dokumen baru

Mencipta dokumen baru dan melampirkan hanya halaman yang tidak kosong menggunakan senarai yang dipantau.

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

Langkah 7: Simpan dokumen yang diubah suai

Simpan dokumen baru dengan halaman putih yang dihapuskan.

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

Contoh Kod Lengkap Untuk Menghapus Halaman Putih Dalam Word Dengan C#

Berikut ialah contoh lengkap kod yang boleh dijalankan yang menunjukkan langkah-langkah di atas:

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

Conclusion

Artikel ini menjelaskan bagaimana untuk menghapuskan halaman kosong dalam fail Word menggunakan C#. Dengan mengikuti langkah-langkah yang disediakan, anda boleh secara programmatik mendeteksi dan memadamkan laman kosong, yang membawa kepada dokumen yang lebih bersih.

 Melayu