عملیات ارائه کد‑کم در .NET
نمای کلی
فضای نام Aspose.Slides.LowCode کلاسهای کمکی استاتیک برای عملیاتهای معمول ارائه فراهم میکند. این کمکیها گردش کارهای متداول مدل شیء را در متدهای متمرکز میپیچند، به طوری که میتوانید فایلها را تبدیل یا ترکیب کنید، عناصر ارائه را پردازش کنید، اشکال را جمعآوری کنید و محتوای استفادهنشده را با کد کمتر حذف کنید.
کمککنندههای کدکم زمانی مفید هستند که عملیات روی یک فایل یا ارائه کامل اعمال شود و گردش کار پیشفرض با نیازهای شما منطبق باشد. هنگام نیاز به کنترل دقیق روی اسلایدهای تک تک، مسترها، چینشها، اشکال، تنظیمات خروجی یا روابط بین عناصر ارائه، از مدل شیء کامل Aspose.Slides استفاده کنید.
جدول زیر خلاصهای از کمککنندههای موجود را نشان میدهد:
| کمککننده | موارد استفاده |
|---|---|
| Convert | تبدیل یک ارائه به قالب دیگر با فراخوانی مستقیم فایل‑به‑فایل. |
| Merger | ترکیب فایلهای ارائه کامل از همان قالب. |
| ForEach | اجرا کردن یک عمل برای هر اسلاید، شکل، پاراگراف یا بخش متنی. |
| Collect | بازیابی اشکال از کل ارائه برای پردازش یا تجزیه و تحلیل مکرر. |
| Compress | حذف مسترها و چینشهای استفادهنشده و کاهش دادههای فونتهای جاسازیشده. |
تبدیل ارائه
زمانی که پسوند فایل خروجی برای انتخاب قالب خروجی کافی باشد، از Convert.AutoByExtension استفاده کنید. این متد ارائه منبع را باز میکند، قالب مورد نیاز را از مسیر خروجی تعیین میکند و نتیجه را مینویسد.
using Aspose.Slides.LowCode;
Convert.AutoByExtension("input.pptx", "output.pdf");
کلاس Convert همچنین متدهای اختصاصی برای خروجی PDF، SVG، JPEG، PNG و TIFF ارائه میدهد. وقتی نیاز به بازرسی یا اصلاح ارائه قبل از خروجی یا پیکربندی گزینهای دارید که توسط کمککننده منتخب در دسترس نیست، از مدل شیء کامل استفاده کنید. برای گردش کارها و گزینههای خاص قالب، به صفحه Convert Presentation مراجعه کنید.
ترکیب ارائهها
برای ترکیب فایلهای ارائه کامل با یک فراخوانی، از Merger.Process استفاده کنید. ارائههای ورودی باید همان قالب فایل را داشته باشند.
using Aspose.Slides.LowCode;
var inputFiles = new[] { "part-1.pptx", "part-2.pptx" };
Merger.Process(inputFiles, "merged.pptx");
این کمککننده زمانی مناسب است که همه اسلایدها باید بهصورت پیوسته به یک نتیجه اضافه شوند بدون اینکه نیاز به انتخاب یا نگاشت آنها بهصورت فردی باشد. وقتی نیاز به ترکیب اسلایدهای انتخابی، اعمال مستر یا چینش مقصد، حفظ بخشها بهصورت صریح یا سازگاری اندازه اسلایدهای مختلف دارید، از مدل شیء کامل استفاده کنید. برای این سناریوها به صفحه Merge Presentations مراجعه کنید.
تکرار بر عناصر ارائه
کلاس ForEach برای هر نوع عنصر درخواستشده یک فراخوانی‑پسزمینه (callback) اجرا میکند. این کار از حلقههای تو در توی مجموعهها جلوگیری میکند و برای بازرسی یا تغییر فرمت در سطح کل ارائه مناسب است.
مثال زیر از ForEach.Slide، ForEach.Shape، ForEach.Paragraph و ForEach.Portion برای بازرسی عناصر مربوطه استفاده میکند:
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
ForEach.Slide(presentation, (slide, index) =>
{
Console.WriteLine($"Slide {index}: {slide.Shapes.Count} shapes");
});
ForEach.Shape(presentation, (shape, slide, index) =>
{
Console.WriteLine($"Shape {index} on {slide.GetType().Name}: {shape.Name}");
});
ForEach.Paragraph(presentation, (paragraph, slide, index) =>
{
Console.WriteLine($"Paragraph {index} on {slide.GetType().Name}: {paragraph.Text}");
});
ForEach.Portion(presentation, (portion, paragraph, slide, index) =>
{
Console.WriteLine($"Portion {index} on {slide.GetType().Name}: {portion.Text}");
});
بهطور پیشفرض، عبور از اشکال و متن در سطح کل ارائه شامل اسلایدهای عادی، مستر و چینش میشود. نسخههای overload با پارامتر includeNotes میتوانند اسلایدهای یادداشتها را نیز پردازش کنند. وقتی ترتیب عبور، خروج زودهنگام، فیلتر کردن قبل از فراخوانی یا کنترل دقیق والد‑فرزند مهم است، از حلقههای مستقیم مجموعه استفاده کنید.
جمعآوری اشکال
وقتی به یک مجموعه از تمام اشکال یک ارائه نیاز دارید نه یک فراخوانی برای هر شکل، از Collect.Shapes استفاده کنید. این کار وقتی مفید است که همان مجموعه برای فیلتر کردن، شمارش یا پردازش مکرر استفاده شود.
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
var shapes = Collect.Shapes(presentation);
foreach (var shape in shapes)
{
Console.WriteLine($"{shape.Name}: {shape.GetType().Name}");
}
اگر هر شکل میتواند بلافاصله در فراخوانی پردازش شود و نیازی به حفظ نتیجه جمعآوریشده ندارید، بهجای آن از ForEach.Shape استفاده کنید.
فشردهسازی محتوای ارائه
کلاس Compress میتواند عناصر ساختاری استفادهنشده را حذف کند و دادههای فونت جاسازیشده را کاهش دهد:
- Compress.RemoveUnusedLayoutSlides اسلایدهای چینش که توسط هیچ اسلاید عادی ارجاع داده نشدهاند، حذف میکند.
- Compress.RemoveUnusedMasterSlides مسترهایی که دیگر استفاده نمیشوند، حذف میکند.
- Compress.CompressEmbeddedFonts کاراکترهای استفادهنشده را از فونتهای جاسازیشده حذف میکند.
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
Compress.RemoveUnusedLayoutSlides(presentation);
Compress.RemoveUnusedMasterSlides(presentation);
Compress.CompressEmbeddedFonts(presentation);
presentation.Save("compressed.pptx", SaveFormat.Pptx);
ابتدا چینشهای استفادهنشده را حذف کنید، سپس مسترهای استفادهنشده؛ بهطوری که مستری که پس از پاکسازی چینشها دیگر ارجاع داده نمیشود، نیز حذف شود. اگر ممکن است بعداً به مسترها، چینشها یا دادههای کامل فونتهای جاسازیشده اصلی نیاز داشته باشید، ارائه بهینهشده را در فایل جدید ذخیره کنید. برای جزئیات بیشتر، به صفحات Slide Master و Embedded Font مراجعه کنید.
سوالات متداول
چه زمانی باید بهجای مدل شیء کامل از API کد‑کم استفاده کنم؟
وقتی یک عملیات استاندارد بر روی یک فایل یا ارائه کامل اعمال میشود و نیازی به کنترل دقیق بر عناصر تکتک نیست، از کمککنندههای کد‑کم استفاده کنید. وقتی بخواهید اسلایدهای خاصی را انتخاب کنید، روابط مستر و چینش را کنترل کنید، وضعیت میانی را بازرسی کنید یا رفتارهایی را تنظیم کنید که کمککننده در معرضشان قرار نمیدهد، از مدل شیء کامل استفاده کنید.
آیا Merger میتواند ارائهها را در قالبهای فایل متفاوت ترکیب کند؟
خیر. Merger.Process نیاز دارد که ارائههای ورودی دارای یک قالب باشند. ابتدا فایلهای ورودی را به قالب مشترک تبدیل کنید، برای مثال با Convert.AutoByExtension، سپس فایلهای تبدیلشده را ترکیب کنید.
آیا ForEach مستر، چینش و اسلایدهای یادداشتها را پردازش میکند؟
ForEach.Slide فقط اسلایدهای عادی ارائه را تکرار میکند. عملیاتهای سطح‑کل ForEach.Shape، ForEach.Paragraph و ForEach.Portion بهطور پیشفرض اسلایدهای عادی، مستر و چینش را شامل میشوند. برای شامل کردن اسلایدهای یادداشتها، overloadهای آنها را با includeNotes برابر true فراخوانی کنید.
اختلاف بین ForEach.Shape و Collect.Shapes چیست؟
از ForEach.Shape برای پردازش هر شکل بلافاصله از طریق یک فراخوانی‑پسزمینه استفاده کنید. وقتی به یک نتیجه قابل شمارش، فیلتر یا عبور چندبار نیاز دارید، از Collect.Shapes استفاده کنید.
آیا Compress همیشه حجم فایل ارائه را کوچکتر میکند؟
لزوماً نه. نتیجه به این بستگی دارد که آیا ارائه شامل چینشهای استفادهنشده، مسترهای استفادهنشده یا فونتهای جاسازیشده با کاراکترهای استفادهنشده باشد یا نه. اگر هیچیک از این موارد موجود نباشد، عملیاتهای Compress ممکن است حجم فایل را کاهش ندهند.
آیا تغییرات ایجادشده توسط ForEach یا Compress بهصورت خودکار ذخیره میشوند؟
نه. این کمککنندهها بر روی شیء Presentation بارگذاریشده در حافظه کار میکنند. پس از تغییر عناصر در فراخوانی ForEach یا اجرای Compress، برای نوشتن نتیجه باید متد Presentation.Save را فراخوانی کنید.