Introduction

Aspose.Slides FOSS for C++ (aspose_slides_foss) เป็นห้องสมุด C++20 ที่เปิดรหัสฟรี สําหรับการสร้างและจัดการงานนําเสนอ PowerPoint โดยโปรแกรม. สร้างโดยเต็มที่ในภาษา C ++ ของพื้นบ้าน โดยไม่มีความพึ่งพาเวลาทํางานภายนอกเหนือ CMake 3.20 +, มันให้ผู้ประกอบการควบคุมไฟล์ PPTX อย่างครบถ้วนโดยไม่จําเป็นต้องใช้ Microsoft Office หรือซอฟต์แวร์ที่เป็นสิทธิพิเศษใด ๆ .

ห้องสมุดถูกปล่อยลงภายใต้ลิขสิทธิ์ MIT ทําให้เหมาะสําหรับโครงการทางพาณิชย์และไม่เป็นพาทย์ ทั้งคู่. API สาธารณะอยู่ในระบบสื่อสารของ Microsoft และใช้งานในเว็บไซต์ที่เปิดอยู่โดยผู้บริหาร Aspose::Slides::Foss namespace และให้รูปแบบวัตถุรวยครอบคลุมการนําเสนอ, ไส้ฉาย, รูปทรง, ตาราง, กรอบข้อความ, คุณสมบัติเอกสาร, ความเห็นและส่งออก PPTX.

บทความนี้จะเดินผ่านพื้นผิว API หลัก: คลาสและวิธีที่คุณใช้บ่อยที่สุดในการสร้าง, การประกอบรูปแบบ และการบันทึกภาพนําเสนอ.


สิ่งที่รวมอยู่ใน

การนําเสนอและการจัดการสไลด์

การ Presentation class คือจุดเข้า. การสร้างตัวอย่างใหม่จะให้คุณสไลด์แบบถัดไปที่พร้อมสําหรับเนื้อหาทันที คุณสามารถเข้าไปในสไลด์ผ่านการใช้งานของ SlideCollection กลับโดย slides(), ซึ่งรองรับการเข้าถึงที่อindex, การซ้ํา, ลบและเรียงใหม่.

#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 class เปิดเผยคุณสมบัติการออกแบบตัวอักษรรวมถึง bold, italic, type underline, capitalisation, strikethrough และสีตัวลอก.

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().คุณสามารถตั้งค่าการเติมแข็ง, การเอกสาร gradient หรือแบบผิวผ่าน set_fill_type() การบรรจุ gradient ได้ถูกตั้งค่าผ่านการใช้งานของ GradientFormat วัตถุที่รองรับมุมเส้น, รูปแบบ gradient และสีหยุดผ่าน 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 class (เข้าถึงผ่าน effect_format()) เพิ่มความสว่าง, เงาภายนอกและผลลัพธ์ด้านข้างอ่อน แต่ละประสิทธิภาพถูกเปิดด้วยวิธีที่พิเศษ (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()) และถูกตั้งค่าผ่านวัตถุที่กลับมาของมัน.

Tables

ตารางถูกสร้างด้วย 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 class ให้คุณตั้งเมตาเดต้า เช่น ชื่อเรื่อง ผู้เขียน หัวข้อ คําสําคัญ หมวดหมู่ เลขการแก้ไข และเวลาเข้าถึงผ่านวัตถุแสดงภาพ.

ความเห็นถูกจัดการผ่านการใช้งานของ: 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. คลอนของเรปไตรี่และสร้าง:

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 กําหนดเป้าหมายการส่งออกทั้งหมด รูปแบบต่อไปนี้ถูกยืนยันในรหัสแหล่ง:

FormatExtensionReadWrite
PPTX.pptxใช่แล้ว
PPT.pptPlanned
PPSX.ppsxPlanned
PPTM.pptmPlanned
PPSM.ppsmPlanned
POTX.potxPlanned
POTM.potmPlanned
POT.ถังPlanned
PPS.ppsPlanned
ODP.odpPlanned
OTP.otpPlanned
FODP.fodpPlanned
PDF.pdf การจัดสรรPlanned
XPS.xpsPlanned
HTML.html การใช้งานPlanned
HTML5.html การใช้งานPlanned
TIFF.TIFFPlanned
GIF.gif การใช้งานPlanned
SWF.swfPlanned
MD.mdPlanned
XML.xmlPlanned

ข้อความ: ปัจจุบันมีการนําไปใช้การส่งออก PPTX เท่านั้น มีค่ารูปแบบอื่นๆในตัวเลขที่ 1 ของตาราง SaveFormat แต่ยังไม่ได้ทํางานได้ save() วิธีการจะผลิต PPTX output ทุกครั้ง ไม่ว่าจะเป็นปารามีเตอร์รูปแบบ.


หลักสูตรและใบอนุญาต

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.


เริ่มต้น

โหลดไฟล์, ทำให้เมชทุกอันเป็นรูปสามเหลี่ยม, และบันทึกผลลัพธ์:

  • Documentation: https://docs.aspose.org/slides/cpp/ สําหรับคู่มือผู้พัฒนา, หลักการและภาพรวมแนวคิด.
  • ฐานความรู้: https://kb.aspose.org/slides/cpp/ สําหรับ FAQ และบทความที่นํามาใช้ในการจัดการงานทั่วไป.
  • อ้างอิง API: https://reference.aspose.org/slides/cpp/ สําหรับการจัดทําเอกสารตามชั้นเรียนของ API ที่เปิดเผยอย่างเต็มที่.

แหล่งข้อมูลที่เกี่ยวข้อง