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

Aspose.Slides FOSS برای C++

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

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

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

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

معنای RAII تضمین می‌کند که پاک‌سازی منابع به‌صورت قابل‌اعتماد انجام شود: مخرب Presentation تمام وضعیت داخلی را به‌صورت خودکار آزاد می‌کند. بخش‌های ناشناخته XML که در حین بارگذاری مواجه می‌شوند، به‌صورت کلمه به کلمه در زمان ذخیره‌سازی حفظ می‌شوند، به‌طوری که دورگردی هرگز محتوایی را که کتابخانه هنوز درک نکرده است، از بین نمی‌برد. کتابخانه به یک کامپایلر سازگار با C++20 نیاز دارد. برای ویژگی‌های اضافی، به Aspose.Slides for C++ enterprise edition مراجعه کنید.

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

  • ایجاد و باز کردن PPTX: ارائه‌های جدید ایجاد کنید یا فایل‌های .pptx موجود را از طریق Presentation() یا Presentation(path) باز کنید.
  • افزودن و حذف اسلایدها: به‌صورت برنامه‌نویسی SlideCollection را با add_empty_slide()، remove() و remove_at() مدیریت کنید.
  • AutoShapes: مستطیل‌ها، بیضی‌ها، خطوط و سایر ShapeType هندسه‌ها را از طریق add_auto_shape() وارد کنید.
  • جداول و اتصالات: شکل‌های جدول ساختاریافته و خطوط اتصال بین اشکال را از طریق add_connector() اضافه کنید.
  • یادداشت‌های سخنران: خواندن و نوشتن یادداشت‌های سخنران برای هر اسلاید از طریق NotesSlideManager
  • Threaded comments: دسترسی به رشته‌های نظرات با تکرار pres.comment_authors() و نظرات مرتبط با آن‌ها.

جایی که Aspose.Slides FOSS می‌تواند استفاده شود

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

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

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

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

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

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

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

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];

    // Add a rectangle AutoShape
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("Hello, Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}
 ```cmake
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)
 

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

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

#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];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}
 ```cpp
#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];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    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++20 نیاز دارد.

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

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

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

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

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

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

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

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

  

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

 فارسی