1. محصولات
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS برای C++

ایجاد، خواندن و ویرایش ارائه‌های PowerPoint از طریق C++ — رایگان و منبع باز، بدون نیاز به وابستگی به Office.

کتابخانه منبع باز C++ برای ارائه‌های PowerPoint

Aspose.Slides FOSS برای C++ یک کتابخانه متن باز با مجوز MIT برای کار با فایل‌های PowerPoint .pptx است. آن را از طریق CMake FetchContent یکپارچه کنید و بلافاصله شروع به ایجاد، خواندن و ویرایش ارائه‌ها کنید بدون نیاز به نصب Microsoft Office یا هر زمان‌اجرای مالکیتی.

کتابخانه یک API ارائه (Presentation) را که بر پایهٔ Presentation، Slide، ShapeCollection، TextFrame، Paragraph و Portion ساخته شده است، که مدل مفهومی مورد استفادهٔ PowerPoint می‌باشد، ارائه می‌دهد. اسلایدها را اضافه یا حذف کنید، AutoShapeها، جدول‌ها و کانکتورها را وارد کنید، متن را در سطح کاراکتر با بولد، ایتالیک، اندازه و رنگ قلم قالب‌بندی کنید، پرکننده‌های ثابت یا گرادیان اعمال کنید و افکت‌های بصری (سایه، درخشندگی، تاری، بازتاب) اضافه کنید.

معنای RAII تضمین می‌کند که پاک‌سازی منابع به‌صورت قابل اعتماد انجام شود: مخرب Presentation تمام وضعیت داخلی را به‌صورت خودکار آزاد می‌کند. بخش‌های XML ناشناخته‌ای که در حین بارگذاری مواجه می‌شوند، به‌صورت دقیق در زمان ذخیره‌سازی حفظ می‌شوند، بنابراین دور‌دور (round‑tripping) هرگز محتوایی را که کتابخانه هنوز نمی‌فهمد، از بین نمی‌برد. این کتابخانه به یک کامپایلر سازگار با C++17 نیاز دارد.

API ارائه و اسلاید

  • ایجاد و باز کردن PPTX: ارائه‌های جدید ایجاد کنید یا فایل‌های .pptx موجود را از طریق Presentation() یا Presentation(path) باز کنید.
  • اضافه و حذف اسلایدها: به‌صورت برنامه‌نویسی SlideCollection را با add_clone()، remove() و remove_at() مدیریت کنید.
  • AutoShapeها: مستطیل‌ها، بیضی‌ها، خطوط و سایر هندسه‌های ShapeType را از طریق add_auto_shape() وارد کنید.
  • جدول‌ها و کانکتورها: اشکال جدول ساختاریافته و خطوط کانکتور بین اشکال را از طریق add_connector() اضافه کنید.
  • یادداشت‌های گوینده: یادداشت‌های گوینده برای هر اسلاید را از طریق NotesSlideManager بخوانید و بنویسید.
  • نظرات رشته‌ای: به رشته‌های نظرات در سطح اسلاید با get_slide_comments() دسترسی پیدا کنید.

محل استفاده از Aspose.Slides FOSS

  • تولید گزارش: مجموعه اسلایدهای برنددار را از منابع داده بدون نیاز به Office بسازید.
  • اتوماسیون قالب: قالب‌های PPTX را با محتوای پویا در خطوط لوله CI/CD پر کنید.
  • مهاجرت محتوا: ارائه‌های موجود را بخوانید و اسلایدها را بازساخت یا بازطراحی کنید.
  • سیستم‌های تعبیه‌شده: پردازش فایل‌های PPTX در محیط‌های حساس به عملکرد یا با منابع محدود.
  • پردازش دسته‌ای: اعمال تغییرات قالب‌بندی یکنواخت بر روی کتابخانه‌های بزرگ مجموعه اسلایدها.

قالب‌بندی متن و افکت‌های بصری

  • قالب‌بندی در سطح کاراکتر: بولد، ایتالیک، اندازه و رنگ قلم را به اشیای Portion جداگانه از طریق PortionFormat اعمال کنید.
  • پرکننده‌های ثابت و گرادیان: پر کردن شکل را به رنگ ثابت یا گرادیان خطی چند‌توقفی با استفاده از FillFormat و FillType تنظیم کنید.
  • افکت‌های سایه و درخشندگی: سایهٔ خارجی، درخشندگی، تاری و بازتاب را به هر شکلی از طریق EffectFormat اعمال کنید.
  • تراز پاراگراف: تراز چپ، مرکز، راست یا توجیه‌شده را برای هر پاراگراف با استفاده از ParagraphFormat و set_alignment() تنظیم کنید.
  • ایمن برای دور‌دور: بخش‌های XML ناشناخته به‌صورت دقیق در زمان ذخیره‌سازی مجدد حفظ می‌شوند.

تجربهٔ توسعه‌دهنده

Aspose.Slides FOSS از طریق CMake FetchContent یکپارچه می‌شود، بنابراین نیازی به دانلود دستی یا نصب سراسری نیست. کتابخانه از منبع همراه با پروژه شما ساخته می‌شود.

API مدل شیء PowerPoint را بازتاب می‌دهد (Presentation، Slide، ShapeCollection، TextFrame، Paragraph، Portion)، بنابراین هر کسی که با مدل شیء PowerPoint آشناست می‌تواند بلافاصله از کتابخانه استفاده کند. این کتابخانه تحت مجوز MIT، منبع باز در GitHub است و به یک کامپایلر سازگار با C++17 نیاز دارد.

یک ارائه ایجاد کنید و یک شکل اضافه کنید

RAII تضمین می‌کند که مخرب Presentation تمام منابع را به‌صورت خودکار هنگام خروج شیء از حوزهٔ دید آزاد کند. add_auto_shape() یک مقدار enum ShapeType، سپس موقعیت x/y و عرض/ارتفاع بر حسب پوینت می‌گیرد — text_frame شکل دسترسی برای تنظیم محتوای متن را فراهم می‌کند.

include(FetchContent)
FetchContent_Declare(
  aspose_slides_foss
  GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
  GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>

int main() {
    Aspose::Slides::Foss::Presentation prs;
    auto& slide = prs.slides()[0];

    // افزودن یک AutoShape مستطیل
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("سلام، Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}

متن را قالب‌بندی کنید و یک افکت پر کردن اعمال کنید

قالب‌بندی متن در سطح Portion کار می‌کند — کوچک‌ترین واحد یک دنبالهٔ کاراکترها. فایل ذخیره‌شده را باز کنید، به اولین portion از اولین پاراگراف بروید و ویژگی‌های قلم را مستقیماً تنظیم کنید. پر کردن شکل مستقل است: نوع پر کردن را به solid تنظیم کنید و یک رنگ اختصاص دهید.

#include <Aspose/Slides/Foss/presentation.h>

namespace asf = Aspose::Slides::Foss;

int main() {
    asf::Presentation prs("output.pptx");
    auto& shape = prs.slides()[0].shapes()[0];
    auto& portion = shape.text_frame()
        ->paragraphs()[0].portions()[0];

    // متن ضخیم، 18pt
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // پر کردن پس‌زمینه به صورت جامد روی شکل
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}

سوالات متداول

Aspose.Slides FOSS برای C++ چیست؟

این یک کتابخانهٔ رایگان C++ با مجوز MIT برای ایجاد، خواندن و ویرایش ارائه‌های PowerPoint با فرمت .pptx است که نیازی به Microsoft Office ندارد.

کدام فرمت‌های فایل پشتیبانی می‌شوند؟

PPTX فرمت پشتیبانی‌شده برای خواندن/نوشتن است. خروجی به PDF، HTML، SVG یا تصاویر در این نسخه موجود نیست.

آیا به Microsoft Office یا PowerPoint نیاز دارد؟

خیر. Aspose.Slides FOSS یک کتابخانهٔ مستقل C++ است که هیچ وابستگی به Microsoft Office، خودکارسازی COM یا هر زمان‌اجرای مالکیتی ندارد.

چگونه آن را نصب کنم؟

از CMake FetchContent برای ادغام کتابخانه به‌صورت مستقیم از GitHub استفاده کنید. این کتابخانه به یک کامپایلر سازگار با C++17 نیاز دارد.

آیا می‌توانم افکت‌های بصری مانند سایه و درخشندگی را اعمال کنم؟

بله. کتابخانه از افکت‌های سایه خارجی، درخشندگی، تاری و انعکاس بر روی هر شیء شکل از طریق API EffectFormat پشتیبانی می‌کند.

آیا این کتابخانه از RAII برای مدیریت منابع استفاده می‌کند؟

بله. مخرب Presentation تمام وضعیت داخلی را به‌صورت خودکار آزاد می‌کند، بنابراین نیازی به پاک‌سازی صریح نیست.

آیا دور زدن یک PPTX محتویات ناشناخته را از بین می‌برد؟

خیر. بخش‌های XML ناشناخته‌ای که در هنگام بارگذاری مواجه می‌شوند، به‌صورت دقیق در زمان ذخیره‌سازی حفظ می‌شوند، بنابراین محتوایی که کتابخانه هنوز درک نمی‌کند، هرگز از دست نمی‌رود.

کجا می‌توانم کد منبع را پیدا کنم؟

این کتابخانه تحت مجوز MIT است و در GitHub میزبانی می‌شود. گزارش‌های باگ و درخواست‌های pull request خوش‌آمد می‌گویند.

  

منابع پشتیبانی و آموزش

 فارسی