Việc loại bỏ các tab dừng tùy chỉnh khỏi các cấp độ danh sách cho phép bạn kiểm soát chi tiết bố cục danh sách trong tài liệu Word. Tính năng Removing List Level Tab Stops thêm một phương thức đơn giản ListLevel.RemoveTabStop() để xóa bất kỳ tab dừng nào đã được đặt trước đó. Bài viết này hướng dẫn bạn cách cài đặt SDK, tạo danh sách, loại bỏ tab dừng của nó và lưu tài liệu đã cập nhật.
Tại sao cần xóa các tab stop cấp danh sách trong tài liệu Word
Các danh sách Word thường dựa vào một tab dừng mặc định để căn số danh sách hoặc dấu đầu dòng với văn bản. Khi tài liệu được tạo một cách lập trình, bạn có thể thêm một tab dừng tùy chỉnh để đạt được sự căn chỉnh trực quan cụ thể. Sau này, yêu cầu kinh doanh có thể thay đổi, hoặc bạn có thể cần tái sử dụng cùng mẫu cho bố cục khác. Việc chỉnh sửa tài liệu thủ công để xóa tab dừng tốn thời gian và dễ gây lỗi. Với ListLevel.RemoveTabStop(), bạn có thể lập trình để khôi phục cấp độ danh sách về hành vi mặc định, đảm bảo tính nhất quán cho các tài liệu được tạo mà không cần can thiệp thủ công.
Giới thiệu API ListLevel
Aspose.Words for .NET cung cấp một mô hình đối tượng phong phú để thao tác với tài liệu Word. Lớp ListLevel đại diện cho một cấp độ duy nhất trong danh sách (ví dụ, cấp độ đầu tiên của danh sách đánh số). Bắt đầu từ phiên bản 26.7, lớp này bao gồm phương thức RemoveTabStop(), phương thức này sẽ xóa bất kỳ vị trí tab tùy chỉnh nào được đặt trên cấp độ đó.
Để bắt đầu, cài đặt gói Aspose.Words từ NuGet:
Install-Package Aspose.Words
Bạn có thể tìm hiểu thêm về sản phẩm trên trang sản phẩm Aspose.Words for .NET. Tài liệu chi tiết có sẵn tại tài liệu Aspose.Words .NET, và bạn có thể khám phá toàn bộ tham chiếu API tại đây.
Xóa một Tab dừng tùy chỉnh khỏi một cấp độ danh sách duy nhất
Hướng dẫn từng bước
- Tạo một Document và DocumentBuilder mới. Đối tượng
Documentgiữ file Word trong bộ nhớ, trong khiDocumentBuilderđơn giản hóa việc tạo nội dung. - Áp dụng định dạng danh sách có số mặc định. Điều này cung cấp cho chúng ta một danh sách với mức độ và tab stop được định trước.
- Viết một vài mục danh sách. Các mục kế thừa định dạng danh sách.
- Lấy
ListLevelhiện tại từ builder. Đây là mức độ chúng ta vừa tạo. - Gọi
RemoveTabStop()trênListLevel. Điều này xóa tab stop tùy chỉnh. - Lưu tài liệu để xác nhận thay đổi.
Ví dụ sau đây minh họa cách xóa một vị trí tab tùy chỉnh khỏi cấp độ danh sách bằng C# và 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");
Cách hoạt động
builder.ListFormat.ApplyNumberDefault()chuyển builder sang ngữ cảnh danh sách có đánh số sử dụng kiểu danh sách mặc định được Word định nghĩa. Điều này ngầm tạo một đối tượngListmới và mộtListLeveltương ứng cho cấp độ đầu tiên.builder.Writeln(...)ghi hai mục danh sách. Vì builder đang ở chế độ danh sách, mỗi lần gọi sẽ tự động thêm số danh sách phù hợp và căn chỉnh văn bản dựa trên vị trí tab của cấp độ.builder.ListFormat.ListLeveltrả về thể hiệnListLevelkiểm soát định dạng cho cấp độ danh sách hiện tại (cấp độ 0 trong trường hợp này).listLevel.RemoveTabStop()xóa vị trí tab tùy chỉnh đã được đặt khi cấp độ danh sách được tạo. Sau lời gọi này, danh sách sẽ sử dụng vị trí tab mặc định của Word, thường nằm ở lề trái của cấp độ.doc.Save(...)ghi tài liệu trong bộ nhớ ra một tệp có tênParagraph.RemoveTabStopFromListLevel.docx. Mở tệp trong Microsoft Word hoặc bất kỳ trình xem tương thích nào để thấy rằng các số và văn bản hiện đã được căn chỉnh bằng vị trí tab mặc định.
Lưu ý: Mẫu mã này được sao chép từ ghi chú phát hành chính thức của Aspose.Words và chưa được thực thi trong môi trường sandbox. Hãy xác minh nó trong môi trường phát triển của bạn trước khi sử dụng trong sản xuất.
Xóa các vị trí tab khỏi tất cả các cấp độ danh sách trong tài liệu
Trong nhiều kịch bản thực tế, một tài liệu chứa nhiều danh sách, mỗi danh sách có nhiều cấp độ. Việc xóa một tab stop chỉ ở một cấp độ có thể không đủ. Đoạn mã sau cho thấy cách lặp qua mọi danh sách trong tài liệu và xóa tab stop ở mỗi cấp độ.
// 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");
Giải thích mã
new Document("Input.docx")tải một tệp Word hiện có có thể chứa nhiều danh sách.doc.Liststrả về một tập hợp các đối tượngListđại diện cho mỗi danh sách riêng biệt trong tài liệu.list.ListLevelscung cấp quyền truy cập vào chín cấp độ có thể (0‑8) cho danh sách đó. Ngay cả khi một cấp độ không được sử dụng, tập hợp vẫn chứa một thể hiệnListLevelvới định dạng mặc định.- Trong vòng lặp bên trong,
level.RemoveTabStop()được gọi trên mọi cấp độ, đảm bảo không còn tab stop tùy chỉnh nào còn lại trong tài liệu. - Cuối cùng,
doc.Save("Output_NoTabStops.docx")ghi tài liệu đã được làm sạch.
Cách tiếp cận này đặc biệt hữu ích khi bạn cần áp dụng một bố cục danh sách đồng nhất cho một loạt báo cáo được tạo ra hoặc khi bạn đang chuẩn hoá các tài liệu nhận được từ các nguồn bên ngoài.
Thêm và Sau Đó Xóa Một Tab Stop Một Cách Lập Trình
Đôi khi bạn có thể cần thêm một vị trí tab tùy chỉnh cho bố cục tạm thời, thực hiện một số thao tác, và sau đó quay lại mặc định. SDK cho phép bạn thêm một vị trí tab bằng ListLevel.TabStops.Add(double position). Sau khi hoàn thành việc định dạng tạm thời, bạn có thể gọi RemoveTabStop() để dọn dẹp.
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");
Giải thích mã
- Sau khi tạo tài liệu và áp dụng danh sách đánh số, chúng ta viết mục đầu tiên.
level.TabStops.Add(72)chèn một tab dừng tùy chỉnh tại 72 điểm (chính xác một inch). Mục danh sách tiếp theo căn chỉnh văn bản của nó tại vị trí đó.- Khi định dạng tạm thời không còn cần thiết,
level.RemoveTabStop()xóa tab dừng tùy chỉnh, khiến các mục tiếp theo quay lại căn chỉnh mặc định. Writelncuối cùng minh họa hiệu quả của việc xóa.
Mẫu này hữu ích khi bạn cần một điều chỉnh một lần—ví dụ, để căn chỉnh tiêu đề trong một danh sách cho bố cục trang cụ thể—trong khi vẫn giữ phần còn lại của tài liệu sạch sẽ.
Nhận giấy phép miễn phí
Aspose cung cấp giấy phép tạm thời miễn phí, loại bỏ các dấu watermark đánh giá và cho phép truy cập đầy đủ API cho việc phát triển và thử nghiệm. Bạn có thể yêu cầu một giấy phép từ trang giấy phép tạm thời của Aspose.
Các tài nguyên bổ sung miễn phí
- Tài liệu Aspose.Words
- Tham chiếu API cho Aspose.Words .NET
- Ứng dụng trực tuyến miễn phí – Chuyển đổi & chỉnh sửa Word
Kết luận
Trong hướng dẫn này, chúng tôi đã trình bày cách sử dụng phương thức mới ListLevel.RemoveTabStop() được giới thiệu trong Aspose.Words 26.7. Bằng cách xóa các tab stop tùy chỉnh, bạn sẽ lấy lại quyền kiểm soát việc căn chỉnh danh sách, đơn giản hoá các mẫu tài liệu và đảm bảo định dạng nhất quán cho các tệp Word được tạo ra. Các ví dụ đã minh họa việc xóa cho một cấp độ danh sách duy nhất, xóa hàng loạt trên toàn bộ tài liệu, và một mẫu cho việc điều chỉnh tab‑stop tạm thời. Việc tích hợp các kỹ thuật này vào các ứng dụng .NET của bạn sẽ làm cho việc tự động hoá Word trở nên mạnh mẽ hơn và dễ bảo trì hơn.
Câu hỏi thường gặp
What does ListLevel.RemoveTabStop() actually remove?
Phương thức này xóa bất kỳ dấu tab tùy chỉnh nào đã được định nghĩa cho cấp độ danh sách, đưa cấp độ trở lại sử dụng dấu tab mặc định được định nghĩa bởi kiểu của tài liệu.Tôi có cần gọi Save() sau khi xóa một tab stop không?
Có. Các thay đổi được thực hiện trong bộ nhớ, vì vậy bạn phải gọiDocument.Save()để lưu định dạng danh sách đã cập nhật vào tệp.Có thể xóa các tab stop khỏi tất cả các cấp độ danh sách trong một tài liệu duy nhất không?
Chắc chắn. Bạn có thể lặp qua mỗiListtrong tài liệu và sau đó qua mỗiListLevel, gọiRemoveTabStop()khi cần.Liệu RemoveTabStop() có hỗ trợ cho danh sách có dấu đầu dòng cũng như danh sách có số không?
Có. Phương thức hoạt động trên bất kỳListLevelnào bất kể nó đại diện cho dấu đầu dòng, số, hay định dạng đa cấp.Việc xóa một vị trí tab tùy chỉnh có ảnh hưởng đến thụt lề của các mục danh sách hiện có không?
Chỉ vị trí tab stop thay đổi. Thụt lề tổng thể được xác định bởi khoảng cách lề trái của cấp độ danh sách vẫn không thay đổi, vì vậy các mục danh sách vẫn giữ được cấu trúc trực quan của chúng.Tôi có cần giấy phép trả phí để sử dụng ListLevel.RemoveTabStop() không?
API này có sẵn trong giấy phép tạm thời miễn phí, nhưng đối với việc sử dụng trong môi trường sản xuất, bạn nên mua giấy phép đầy đủ từ Aspose.
