کار با لیست ها
یک لیست در یک سند Microsoft Word مجموعه ای از ویژگی های قالب بندی پاراگراف است. فهرستها را میتوان در اسناد برای ساختار، ترتیب، و برجسته کردن متن استفاده کرد. فهرست ها روشی عالی برای سازماندهی داده ها در اسناد به گونه ای است که جذب و درک نکات کلیدی را برای خوانندگان آسان می کند.
هر لیست می تواند تا 9 سطح داشته باشد و ویژگی های قالب بندی مانند سبک شماره، مقدار شروع، تورفتگی، موقعیت تب و موارد دیگر به طور جداگانه برای هر سطح تعریف شده است.
در Aspose.Words، کار با لیست ها با فضای نام Lists نشان داده می شود. با این حال، شی List همیشه به ListCollection تعلق دارد.
این مقاله کار برنامه نویسی با لیست ها را با استفاده از Aspose.Words شرح می دهد.
با اعمال قالببندی فهرست، فهرستها را ایجاد کنید
Aspose.Words امکان ایجاد آسان لیست ها را با اعمال قالب بندی لیست فراهم می کند. DocumentBuilder ویژگی ListFormat را فراهم می کند که یک شی ListFormat را برمی گرداند. این شی چندین روش برای شروع و پایان یک لیست و افزایش/کاهش تورفتگی دارد. دو نوع لیست کلی در Microsoft Word وجود دارد: گلوله ای و شماره گذاری شده:
- برای شروع یک لیست گلوله ای، با ApplyBulletDefault تماس بگیرید
- برای شروع یک لیست شماره دار، با ApplyNumberDefault تماس بگیرید
گلوله یا شماره و قالببندی به پاراگراف فعلی اضافه میشود و تمام پاراگرافهای بعدی با استفاده از DocumentBuilder ایجاد میشوند تا زمانی که RemoveNumbers برای توقف قالببندی لیست گلولهای فراخوانی شود.
در اسناد Word، فهرست ها ممکن است تا نه سطح داشته باشند. قالببندی فهرست برای هر سطح مشخص میکند که چه گلوله یا عددی استفاده شود، تورفتگی سمت چپ، فاصله بین گلوله و متن و غیره. روشهای زیر سطح فهرست را تغییر میدهند و ویژگیهای قالببندی سطح جدید را اعمال میکنند:
- برای افزایش سطح لیست پاراگراف فعلی یک سطح، با ListIndent تماس بگیرید
- برای کاهش سطح فهرست پاراگراف فعلی یک سطح، با ListOutdent تماس بگیرید
همچنین می توانید از ویژگی ListLevelNumber برای دریافت یا تنظیم سطح لیست برای پاراگراف استفاده کنید.
مثال کد زیر نحوه ساخت یک لیست چندسطحی را نشان می دهد:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.ListFormat.ApplyNumberDefault(); | |
builder.Writeln("Item 1"); | |
builder.Writeln("Item 2"); | |
builder.ListFormat.ListIndent(); | |
builder.Writeln("Item 2.1"); | |
builder.Writeln("Item 2.2"); | |
builder.ListFormat.ListIndent(); | |
builder.Writeln("Item 2.2.1"); | |
builder.Writeln("Item 2.2.2"); | |
builder.ListFormat.ListOutdent(); | |
builder.Writeln("Item 2.3"); | |
builder.ListFormat.ListOutdent(); | |
builder.Writeln("Item 3"); | |
builder.ListFormat.RemoveNumbers(); | |
dataDir = dataDir + "DocumentBuilderSetMultilevelListFormatting_out.doc"; | |
doc.Save(dataDir); |
قالب بندی را برای سطح فهرست مشخص کنید
اشیاء در سطح لیست به طور خودکار هنگام ایجاد یک لیست ایجاد می شوند. از ویژگی ها و روش های کلاس ListLevel برای کنترل قالب بندی سطوح فردی یک لیست استفاده کنید.
لیست را برای هر بخش راه اندازی مجدد کنید
با استفاده از ویژگی IsRestartAtEachSection می توانید لیستی را برای هر بخش راه اندازی مجدد کنید. توجه داشته باشید که این گزینه فقط در فرمت های سند RTF، DOC و DOCX پشتیبانی می شود. این گزینه فقط در صورتی روی DOCX نوشته می شود که OoxmlCompliance بالاتر از Ecma376 باشد.
مثال کد زیر نحوه ایجاد یک لیست و راه اندازی مجدد آن برای هر بخش را نشان می دهد:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
doc.Lists.Add(ListTemplate.NumberDefault); | |
List list = doc.Lists[0]; | |
// Set true to specify that the list has to be restarted at each section. | |
list.IsRestartAtEachSection = true; | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.ListFormat.List = list; | |
for (int i = 1; i < 45; i++) | |
{ | |
builder.Writeln(String.Format("List Item {0}", i)); | |
// Insert section break. | |
if (i == 15) | |
builder.InsertBreak(BreakType.SectionBreakNewPage); | |
} | |
// IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.Ecma376 | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); | |
options.Compliance = OoxmlCompliance.Iso29500_2008_Transitional; | |
dataDir = dataDir + "RestartAtEachSection_out.docx"; | |
// Save the document to disk. | |
doc.Save(dataDir, options); |