從清單層級中移除自訂定位點可讓您對 Word 文件中的清單版面進行精細控制。Removing List Level Tab Stops 功能新增了一個簡單的 ListLevel.RemoveTabStop() 方法,可清除先前設定的定位點。本文將逐步說明如何安裝 SDK、建立清單、移除其定位點,並儲存更新後的文件。

為什麼在 Word 文件中移除列表級別的 Tab 停止點

Word 列表通常依賴於預設的定位點(tab stop),將列表編號或項目符號與文字對齊。當文件以程式方式產生時,您可能會加入自訂的定位點以實現特定的視覺對齊。之後,業務需求可能會變更,或您需要將相同的範本重新用於不同的版面配置。手動編輯文件以刪除定位點既耗時又容易出錯。使用 ListLevel.RemoveTabStop(),您可以以程式方式將列表層級恢復為預設行為,確保在產生的文件中保持一致性,無需人工干預。

介紹 ListLevel API

Aspose.Words for .NET 提供了豐富的物件模型,用於操作 Word 文件。ListLevel 類別表示清單中的單一層級(例如,有序清單的第一層)。從 26.7 版開始,該類別包含 RemoveTabStop() 方法,可清除該層級上設定的任何自訂定位點。

要開始,請從 NuGet 安裝 Aspose.Words 套件:

Install-Package Aspose.Words

您可以在 Aspose.Words for .NET 產品頁面 上了解更多產品資訊。詳細文件可在 Aspose.Words .NET 文件 中取得,完整的 API 參考則可在 此處 探索。

從單一清單層級移除自訂定位點

逐步教學

  1. 建立新的 Document 和 DocumentBuilder。 Document 物件在記憶體中保存 Word 檔案,而 DocumentBuilder 簡化了內容的建立。
  2. 套用預設的編號清單格式。 這會為我們提供具有預先定義層級和定位點的清單。
  3. 寫入幾個清單項目。 這些項目會繼承清單格式。
  4. 從 builder 取得目前的 ListLevel 這就是我們剛剛建立的層級。
  5. ListLevel 呼叫 RemoveTabStop() 這會清除自訂的定位點。
  6. 儲存文件 以驗證變更。

以下範例示範如何使用 C# 和 Aspose.Words 從清單層級中移除自訂定位點。

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a list with default formatting
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Numbered list item 1");
builder.Writeln("Numbered list item 2");

// Get the list level and remove its tab stop
ListLevel listLevel = builder.ListFormat.ListLevel;
listLevel.RemoveTabStop();

doc.Save("Paragraph.RemoveTabStopFromListLevel.docx");

它是如何運作的

  • builder.ListFormat.ApplyNumberDefault() 轉換 builder 為使用 Word 定義的預設清單樣式的編號清單環境。此操作會隱式建立一個新的 List 物件以及對應的第一層 ListLevel
  • builder.Writeln(...) 寫入兩個清單項目。由於 builder 處於清單模式,每次呼叫都會自動在前面加上適當的清單編號,並根據層級的定位點 (tab stop) 對齊文字。
  • builder.ListFormat.ListLevel 回傳控制目前清單層級(此例為第 0 層)格式的 ListLevel 實例。
  • listLevel.RemoveTabStop() 清除在建立清單層級時設定的自訂定位點。呼叫此方法後,清單將使用 Word 的預設定位點,通常位於該層級的左縮排處。
  • doc.Save(...) 將記憶體中的文件寫入名為 Paragraph.RemoveTabStopFromListLevel.docx 的檔案。於 Microsoft Word 或任何相容的檢視器中開啟該檔案,即可看到編號與文字現在是使用預設定位點對齊。

注意: 此程式碼範例取自官方 Aspose.Words 版本說明,尚未在沙箱環境中執行。請在生產環境使用前於您自己的開發環境中驗證。

從文件的所有列表級別中移除製表位

在許多實際情況中,文件包含多個清單,每個清單都有多個層級。僅從單一層級移除製表位可能不足。以下程式碼片段示範如何遍歷文件中的每個清單,並清除每個層級的製表位。

// Load an existing document that contains multiple lists
Document doc = new Document("Input.docx");

// Iterate through every list in the document
foreach (List list in doc.Lists)
{
    // Each list can have multiple levels (0‑8). Iterate them.
    foreach (ListLevel level in list.ListLevels)
    {
        // Remove any custom tab stop for this level
        level.RemoveTabStop();
    }
}

// Save the updated document
doc.Save("Output_NoTabStops.docx");

程式碼說明

  • new Document("Input.docx") 載入一個可能包含多個清單的現有 Word 檔案。
  • doc.Lists 會回傳一個 List 物件的集合,代表文件中每個不同的清單。
  • list.ListLevels 提供對該清單的九個可能層級 (0‑8) 的存取。即使某個層級未被使用,集合中仍會包含具有預設格式的 ListLevel 實例。
  • 在內部迴圈中,對每個層級呼叫 level.RemoveTabStop(),確保文件中不會留下任何自訂的定位點。
  • 最後,doc.Save("Output_NoTabStops.docx") 會寫入已清理的文件。

此方法在您需要在一批生成的報告中強制統一列表布局,或在對來自外部來源的文件進行標準化時,特別有用。

以程式方式新增然後移除制表位

有時您可能需要為臨時佈局添加自訂的定位點,執行一些操作,然後恢復為預設。SDK 允許您使用 ListLevel.TabStops.Add(double position) 來添加定位點。完成臨時格式設定後,您可以呼叫 RemoveTabStop() 進行清除。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Temporarily aligned item 1");

// Add a custom tab stop at 72 points (1 inch)
ListLevel level = builder.ListFormat.ListLevel;
level.TabStops.Add(72);

builder.Writeln("Item with custom tab stop");

// Later, remove the custom tab stop
level.RemoveTabStop();

builder.Writeln("Item after removing tab stop");

doc.Save("TempTabStopDemo.docx");

程式碼說明

  • 在建立文件並套用編號清單後,我們寫入第一個項目。
  • level.TabStops.Add(72) 會在 72 點(正好一英吋)插入自訂定位點。隨後的清單項目會將文字對齊到該位置。
  • 當不再需要暫時的格式設定時,level.RemoveTabStop() 會清除自訂定位點,使後續項目回復預設對齊。
  • 最後的 Writeln 示範了移除的效果。

當您需要一次性調整時,此模式非常方便——例如,為了在特定頁面佈局中將標題對齊於列表內——同時保持文件其餘部分的整潔。

取得免費授權

Aspose 提供臨時免費授權,可移除評估水印,並為開發和測試提供完整的 API 訪問權限。您可以從 Aspose 臨時授權頁面 申請。

免費額外資源

結論

在本教程中,我們介紹了如何使用 Aspose.Words 26.7 中引入的全新 ListLevel.RemoveTabStop() 方法。通過清除自訂定位點,您可以重新掌控清單對齊,簡化文件範本,並確保在生成的 Word 檔案中保持一致的格式。示例展示了對單一清單層級的移除、對整個文件的批量移除,以及臨時定位點調整的模式。將這些技術整合到您的 .NET 應用程式中,將使 Word 自動化更加穩健且易於維護。

常見問題

  1. ListLevel.RemoveTabStop() 實際上會移除什麼?
    此方法會清除為清單層級定義的任何自訂定位點,並將該層級恢復為使用文件樣式定義的預設定位點。

  2. 在移除定位點後,我需要呼叫 Save() 嗎?
    是的。變更僅在記憶體中完成,因此必須呼叫 Document.Save() 以將更新的清單格式保存到檔案。

  3. 我可以在單個文件中移除所有清單層級的定位點嗎?
    當然可以。您可以遍歷文件中的每個 List,然後遍歷每個 ListLevel,在需要時調用 RemoveTabStop()

  4. RemoveTabStop() 是否同樣支援項目符號清單以及編號清單?
    是的。此方法適用於任何 ListLevel,不論它是項目符號、編號或多層級格式。

  5. 移除自訂定位點會影響現有清單項目的縮排嗎?
    只有定位點位置會變更。由清單層級左側縮排定義的整體縮排保持不變,因此清單項目仍保留其視覺層次結構。

  6. 我需要付費授權才能使用 ListLevel.RemoveTabStop() 嗎?
    此 API 在免費臨時授權中可用,但在生產環境中應從 Aspose 獲取完整授權。

閱讀更多