مقدمة

Aspose.Slides FOSS for C++ (aspose_slides_foss) هو مكتبة مجانية مفتوحة المصدر C++20 لإنشاء وتلاعب PowerPoint العروض التقديمية برمجة.بناء تماما في C ++ الأصلي مع لا تعتمد على وقت التشغيل الخارجي خارج CMake 3.20+، فإنه يعطي المطورين السيطرة الكاملة على ملفات PPTX دون الحاجة إلى Microsoft Office أو أي برامج خاصة.

يتم إصدار المكتبة تحت ترخيص MIT ، مما يجعلها مناسبة للمشاريع التجارية وغير التجارعية على حد سواء. Aspose::Slides::Foss اسم مساحة وتوفير نموذج غنية من الكائنات تغطي العروض التقديمية، الشرائح، الأشكال، اللوحات، إطارات النص، خصائص المستند، التعليقات، و PPTX الصادرات.

هذا المنشور يمر عبر سطح API الأساسية: الفصول والأساليب التي ستستخدمها في معظم الأحيان عند بناء وتصميم وتخزين العروض التقديمية.


ما هو مدرجة

عرض وإدارة الشرائح

وَالْمُتَّقِينَ Presentation فئة هي نقطة الدخول.إن إنشاء مثال جديد يعطيك شريط افتراضي جاهز على الفور للمحتوى.يمكنك الوصول إلى الشرائح من خلال SlideCollection عاد من خلال slides(),التي تدعم الوصول المحدد، والإيترار، وإزالة، إعادة ترتيب.

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);

أشكال و أوتوماتيك

كل صورة تظهر أ ShapeCollection من خلالها shapes() المجموعة توفر أساليب المصنع لإضافة أنواع مختلفة من الأشكال: add_auto_shape بالنسبة لأشكال الجيومترية القياسية (المنحنيات، المثلثات)،, add_connector على خطوط الاتصال،, add_table على الطاولات، و add_picture_frame من أجل الصور.

auto& slide = pres.slides()[0];

// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100);

// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
    ShapeType::ELLIPSE, 400, 50, 150, 150);

// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
    ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);

وَالْمُتَّقِينَ ShapeCollection كما يدعم size(), remove(), remove_at(), reorder(), index_of(),و ، و clear() - إدارة الأشكال بعد الإبداع.

نص و الفقرة تنسيق

يمكن للكتابة أن تتحمل النص من خلال TextFrame.استخدام add_text_frame() على واحد AutoShape إرفاق محتوى النص، أو الوصول إلى الإطار الحالي من خلال text_frame().يتم ترتيب النص في أحكام، كل منها يحتوي على جزء أو أكثر. BasePortionFormat تظهر الفئة خصائص طراز الخط بما في ذلك الشجاعة، الإيطالية، نوع القاعدة، الاستثمار، صارمة، وألوان الخط.

auto& shape = pres.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"

الكمال والدرجة والنظرة

كل شكل يقدم أ FillFormat الوصول عبر fill_format().يمكنك إعداد ملء صلب، أو ملؤ الجرادين، و أو نموذج ملئ من خلال set_fill_type() طريقة.مكملات الدرجة يتم تكوينها من خلال GradientFormat الكائن، الذي يدعم الزوايا الخطية، وشكل الجرادين، وتوقف الألوان عبر GradientStopCollection.

auto& shape = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);

وَالْمُتَّقِينَ EffectFormat الدرجة (من خلال الوصول إلى effect_format()(إذا كان هناك أثر في الضوء، والظل الخارجي، وأفعال الحافة الناعمة.كل تأثير يتم تمكينها باستخدام طريقة مخصصة (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()( ) وتكوينها من خلال كائنها المكرر.

طاولات

يتم إنشاء اللوحات مع add_table() على مجموعة الشكل.أنت توفر عرض الأعمدة وارتفاع الصفوف كمتدخلات.العودة Table موضوع المعرض rows() و columns() جمعية، وفردياً Cell موضوعات دعم محتوى النص عبر TextFrame.

std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
    50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3

ملكية الوثيقة والتعليقات

وَالْمُتَّقِينَ DocumentProperties تتيح لك الفصول إعداد البيانات الميتا مثل العنوان، المؤلف، الموضوع، الكلمات الرئيسية، الفئة، رقم مراجعة، والساعات.

التعليقات يتم إدارتها من خلال CommentAuthorCollection و CommentCollection.أضف الكاتب مع add_author(),ثم يرفع التعليقات إلى الشرائح المحددة في إطارات محددة.

Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
    "Review note", slide, PointF(2.0f, 3.0f), now);

بدء سريع

بناء من المصدر

يتطلب المكتبة CMake 3.20+ و C++20-capable compiler.:

git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

الحد الأدنى للمثال

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];

    // Add a shape with text
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 300, 100, false);
    shape.add_text_frame("Hello from Aspose.Slides FOSS!");

    // Apply a solid fill
    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::blue);

    // Save
    pres.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

تنسيقات مدعومة

وَالْمُتَّقِينَ SaveFormat يحدد enum جميع أهداف التصدير، ويتم تأكيد النماذج التالية في رمز المصدر:

شكلالتمديدقراءةكتب
PPTX.pptxنعم
PPT.pptالمخطط
PPSX.ppsxالمخطط
PPTM.pptmالمخطط
PPSM.ppsmالمخطط
POTX.بوتكسالمخطط
POTM.بوتينالمخطط
POT.بوتالمخطط
PPS.ppsالمخطط
ODP.أودبالمخطط
OTP.OTPالمخطط
FODP.فودبالمخطط
PDF.pdfالمخطط
XPS.xpsالمخطط
HTML.htmlالمخطط
HTML5.htmlالمخطط
TIFF.طيبالمخطط
GIF.GIFالمخطط
SWF.سفيتالمخطط
MD.مـمـنالمخطط
XML.xmlالمخطط

ملاحظة : في الوقت الحاضر يتم تنفيذ فقط تصدير PPTX. قيمة تنسيق أخرى موجودة في SaveFormat أندية متوافقة مع التقدم ولكنها غير وظيفية بعد. save() الطريقة دائما تولد PPTX الناتج بغض النظر عن معيار الشكل.


المصدر المفتوح و الترخيص

Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at https://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp.


بدءاً من

هل أنت مستعد لدمج Aspose.Slides FOSS في مشروع C++ الخاص بك؟ إليك الموارد الرئيسية: