مقدمه

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx فایل‌ها به‌صورت بومی C++، بدون وابستگی به Microsoft Office یا هر زمان‌اجرای مالکیتی.

این کتابخانه برای توسعه‌دهندگانی طراحی شده است که نیاز به تولید یا دستکاری فایل‌های ارائه به‌صورت برنامه‌نویسی دارند: خودکارسازی اسلایدها از داده‌ها، استخراج متن و فراداده از فایل‌های PPTX بارگذاری‌شده، ساخت خطوط لوله گزارش‌گیری مبتنی بر ارائه، یا ادغام ایجاد ارائه در برنامه‌های دسکتاپ و سرور. زیرا aspose_slides_foss با CMake ساخته شده است، بر روی Windows، macOS و Linux کامپایل و استقرار می‌یابد.

ویژگی های کلیدی

  • پشتیبانی کامل دورگرد PPTX: باز کردن هر .pptx فایل، محتوای آن را تغییر دهید و بدون از دست دادن بخش‌های XML ناشناسی که کتابخانه هنوز درک نکرده است، آن را ذخیره کنید.
  • مدیریت اسلایدها: افزودن، حذف و تکرار اسلایدها با استفاده از prs.slides(); پس از ساخت یک، ارائه با یک اسلاید خالی شروع می‌شود Presentation.
  • AutoShapes، جداول و کانکتورها: درج اشکال از طریق slide.shapes().add_auto_shape(), داده‌های جدولی از طریق slide.shapes().add_table(), و اتصالات بصری بین اشکال از طریق slide.shapes().add_connector().
  • قالب‌بندی متن غنی: قالب‌بندی متن در سطح کاراکتر با PortionFormat: اندازه قلم، ضخیم، ایتالیک، زیرخط و رنگ ARGB از طریق FillType::SOLID و ColorFormat.
  • انواع پر: اعمال FillType::SOLID, Gradient, Pattern, یا Picture به هر شکلی پر می‌شود.
  • جلوه‌های بصری: سایه خارجی، درخشندگی، لبه نرم، تاری، بازتاب، و سایه داخلی از طریق shape.effect_format().
  • 3D formatting: برجستگی، دوربین، ست نور، ماده، و عمق برآمدگی از طریق shape.three_d_format().
  • یادداشت‌های سخنران: پیوست متن یادداشت‌ها به هر اسلاید از طریق notes_slide_manager().add_notes_slide().
  • نظرات زنجیره‌ای: افزودن نظرات با متادیتای نویسنده و موقعیت اسلاید.
  • تصاویر تعبیه‌شده: تعبیه از مسیر فایل، بافر حافظه یا جریان.
  • ویژگی‌های سند: خواندن و نوشتن ویژگی‌های هسته، برنامه و سفارشی.

شروع کار

کتابخانه را از طریق CMake اضافه کنید. یک کامپایلر C++17 مورد نیاز است.

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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

اولین نمایش خود را با یک شکل ایجاد کنید و آن را ذخیره کنید:

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

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

این Presentation destructor تمام منابع داخلی را به‌صورت خودکار آزاد می‌کند وقتی از محدوده خارج می‌شود.

نمونه های متن

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

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

محدودیت های فعلی

در این نسخه، نواحی زیر استثنا می‌اندازند:

  • نمودارها، SmartArt و اشیای OLE
  • انیمیشن‌ها و انتقال اسلایدها
  • صادرات به PDF، HTML، SVG یا فرمت‌های تصویر
  • هایپرلینک‌ها، تنظیمات اقدام، ماکروهای VBA و امضاهای دیجیتال

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

موارد مرتبط