حذف توقفهای تب سفارشی از سطوح فهرست، کنترل دقیقتری بر چیدمان فهرست در اسناد Word به شما میدهد. ویژگی Removing List Level Tab Stops یک متد ساده ListLevel.RemoveTabStop() اضافه میکند که هر توقف تب قبلاً تنظیمشدهای را پاک میکند. این مقاله شما را گام به گام در نصب SDK، ایجاد یک فهرست، حذف توقف تب آن و ذخیره سند بهروز شده راهنمایی میکند.
چرا توقفهای تب سطح فهرست را در یک سند Word حذف کنیم
فهرستهای Word اغلب به یک توقفتب پیشفرض تکیه میکنند که شماره یا علامت فهرست را با متن همراستا میکند. هنگامی که یک سند بهصورت برنامهنویسی تولید میشود، ممکن است برای دستیابی به تراز بصری خاص، یک توقفتب سفارشی اضافه کنید. بعدها، نیازهای تجاری ممکن است تغییر کنند یا نیاز داشته باشید همان قالب را برای طرحبندی متفاوتی دوباره استفاده کنید. ویرایش دستی سند برای حذف توقفتب زمانبر و مستعد خطا است. با ListLevel.RemoveTabStop() میتوانید بهصورت برنامهنویسی سطح فهرست را به رفتار پیشفرض آن بازگردانید و سازگاری را در اسناد تولید شده بدون مداخله دستی تضمین کنید.
معرفی ListLevel API
Aspose.Words for .NET یک مدل شیء غنی برای دستکاری اسناد Word فراهم میکند. کلاس ListLevel یک سطح واحد درون یک فهرست را نشان میدهد (به عنوان مثال، اولین سطح یک فهرست شمارهدار). از نسخه 26.7 به بعد، این کلاس شامل متد RemoveTabStop() است که هر توقفبرگه سفارشی تنظیم شده بر آن سطح را پاک میکند.
برای شروع، بسته Aspose.Words را از NuGet نصب کنید:
Install-Package Aspose.Words
شما میتوانید اطلاعات بیشتری درباره محصول در Aspose.Words for .NET product page بیابید. مستندات جزئیات در Aspose.Words .NET docs در دسترس است و مرجع کامل API میتواند اینجا بررسی شود.
حذف یک توقفتب سفارشی از یک سطح فهرست
آموزش گامبهگام
- یک سند جدید و DocumentBuilder ایجاد کنید. شیء
Documentفایل Word را در حافظه نگه میدارد، در حالی کهDocumentBuilderفرآیند ایجاد محتوا را ساده میکند. - یک قالب فهرست شمارهدار پیشفرض اعمال کنید. این یک فهرست با سطح از پیش تعریفشده و توقفتب میسازد.
- چند مورد فهرست بنویسید. موارد، قالببندی فهرست را به ارث میبرند.
- سطح
ListLevelفعلی را از سازنده (builder) بازیابی کنید. این همان سطحی است که تازه ایجاد کردهایم. - متد
RemoveTabStop()را رویListLevelفراخوانی کنید. این توقفتب سفارشی را پاک میکند. - سند را ذخیره کنید تا تغییر را تأیید کنید.
مثال زیر نشان میدهد که چگونه میتوان یک توقف تب سفارشی را از سطح لیست با استفاده از 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()سازنده را به یک زمینه فهرست شمارهدار با استفاده از سبک فهرست پیشفرض تعریفشده توسط Word تغییر میدهد. این بهطور ضمنی یک شیءListجدید و یکListLevelمربوطه برای اولین سطح ایجاد میکند.builder.Writeln(...)دو مورد فهرست مینویسد. چون سازنده در حالت فهرست است، هر فراخوانی بهصورت خودکار شماره فهرست مناسب را پیشوند میکند و متن را بر اساس توقفبر سطح تنظیم میکند.builder.ListFormat.ListLevelنمونهListLevelرا برمیگرداند که قالببندی سطح فعلی فهرست (سطح 0 در این مورد) را کنترل میکند.listLevel.RemoveTabStop()توقفبر سفارشی که هنگام ایجاد سطح فهرست تنظیم شده بود را پاک میکند. پس از این فراخوانی، فهرست از توقفبر پیشفرض Word استفاده میکند که معمولاً در تورفتگی چپ سطح قرار دارد.doc.Save(...)سند در‑حافظه را به فایلی به نامParagraph.RemoveTabStopFromListLevel.docxمینویسد. فایل را در Microsoft Word یا هر نمایشگر سازگار دیگری باز کنید تا ببینید که شمارهها و متن اکنون با استفاده از توقفبر پیشفرض همتراز شدهاند.
Note: این نمونه کد از یادداشتهای انتشار رسمی 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)یک توقفتب سفارشی در ۷۲ پوینت (دقیقاً یک اینچ) اضافه میکند. مورد بعدی فهرست متن خود را در آن موقعیت تراز میکند.- پس از اینکه قالببندی موقت دیگر لازم نبود،
level.RemoveTabStop()توقفتب سفارشی را پاک میکند و باعث میشود موارد بعدی به تراز پیشفرض بازگردند. Writelnنهایی اثر حذف را نشان میدهد.
این الگو زمانی که به تنظیم یکباره نیاز دارید—مثلاً برای تراز کردن یک عنوان درون یک فهرست برای یک طرح صفحه خاص—در حالی که بقیه سند را تمیز نگه میدارید، مفید است.
دریافت یک مجوز رایگان
Aspose یک مجوز موقت رایگان ارائه میدهد که علامتهای ارزیابی را حذف میکند و دسترسی کامل به API را برای توسعه و تست فراهم میسازد. میتوانید یکی را از صفحه مجوز موقت Aspose درخواست کنید.
منابع اضافی رایگان
نتیجهگیری
در این آموزش نحوه استفاده از متد جدید ListLevel.RemoveTabStop() که در Aspose.Words 26.7 معرفی شده است را پوشش دادیم. با پاکسازی توقفگاههای تب سفارشی، کنترل بر تراز لیست را باز میگیرید، قالبهای سند را ساده میکنید و اطمینان مییابید که قالببندی در فایلهای Word تولید شده بهصورت یکسان باشد. مثالها حذف برای یک سطح لیست واحد، حذف دستهجمعی در سراسر یک سند، و الگوی تنظیم موقت توقفگاههای تب را نشان دادند. ادغام این تکنیکها در برنامههای .NET شما، خودکارسازی Word را قویتر و نگهداری آن را آسانتر میکند.
سوالات متداول
ListLevel.RemoveTabStop() در واقع چه چیزی را حذف میکند؟
این متد هر توقف تب سفارشی که برای سطح لیست تعریف شده بود را پاک میکند و سطح را به استفاده از توقف تب پیشفرض تعریفشده توسط سبک سند باز میگرداند.آیا پس از حذف یک توقف تب، نیاز به فراخوانی Save() دارم؟
بله. تغییرات در حافظه انجام میشود، بنابراین بایدDocument.Save()را فراخوانی کنید تا قالببندی لیست بهروزرسانیشده در فایل ذخیره شود.آیا میتوانم توقفهای تب را از تمام سطوح فهرست در یک سند واحد حذف کنم؟
بهطور قطع. میتوانید از هرListدر سند عبور کنید و سپس از هرListLevel، با فراخوانیRemoveTabStop()در صورت نیاز.آیا RemoveTabStop() برای فهرستهای بولتدار همانند فهرستهای شمارهدار پشتیبانی میشود؟
بله. این متد بر روی هرListLevelی کار میکند، صرفنظر از اینکه نشاندهنده یک بولت، شماره یا قالب چندسطحی باشد.آیا حذف یک توقف تب سفارشی بر تورفتگی موارد لیست موجود تأثیر میگذارد؟
فقط موقعیت توقف تب تغییر میکند. تورفتگی کلی که توسط تورفتگی چپ سطح لیست تعریف شده است بدون تغییر میماند، بنابراین موارد لیست سلسلهمراتب بصری خود را حفظ میکنند.آیا برای استفاده از ListLevel.RemoveTabStop() به یک لایسنس پولی نیاز دارم؟
این API در لایسنس موقت رایگان در دسترس است، اما برای استفاده در محیط تولید باید یک لایسنس کامل از Aspose دریافت کنید.
