Aspose.Slides FOSS สำหรับ C++ เป็นไลบรารีที่ใช้สัญญาอนุญาต MIT สำหรับทำงานกับไฟล์ PowerPoint .pptx รวมเข้ากับโครงการผ่าน CMake FetchContent และเริ่มสร้าง อ่าน และแก้ไขงานนำเสนอได้ทันทีโดยไม่ต้องติดตั้ง Microsoft Office หรือรันไทม์ที่เป็นกรรมสิทธิ์
ไลบรารีนี้เปิดเผย Presentation API ที่สร้างขึ้นรอบ ๆ Presentation, Slide, ShapeCollection, TextFrame, Paragraph และ Portion ซึ่งเป็นโมเดลเชิงแนวคิดที่ PowerPoint ใช้เอง เพิ่มและลบสไลด์ แทรก AutoShapes, Tables, และ Connectors ปรับรูปแบบข้อความในระดับอักขระด้วยตัวหนา ตัวเอียง ขนาดและสีของฟอนต์ ใช้การเติมสีแบบทึบหรือไล่สี และเพิ่มเอฟเฟกต์ภาพ (เงา, แสงเรืองแสง, เบลอ, การสะท้อน)
แนวคิด RAII รับประกันการทำความสะอาดทรัพยากรอย่างเชื่อถือได้: ตัวทำลาย Presentation จะปล่อยสถานะภายในทั้งหมดโดยอัตโนมัติ ส่วน XML ที่ไม่รู้จักที่พบระหว่างการโหลดจะถูกเก็บไว้ตามต้นฉบับเมื่อบันทึก ดังนั้นการวนกลับไม่ทำลายเนื้อหาที่ไลบรารียังไม่เข้าใจ ไลบรารีนี้ต้องการคอมไพเลอร์ที่รองรับ C++17
.pptx ที่มีอยู่ผ่าน Presentation() หรือ Presentation(path)SlideCollection อย่างโปรแกรมด้วย add_clone(), remove(), และ remove_at()ShapeType อื่น ๆ ผ่าน add_auto_shape()add_connector()NotesSlideManagerget_slide_comments().Portion แต่ละอันผ่าน PortionFormat.FillFormat และ FillType.EffectFormat.ParagraphFormat และ set_alignment().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 แรกของย่อหน้าแรก, และตั้งค่าคุณสมบัติของฟอนต์โดยตรง Shape fill เป็นอิสระ: ตั้งค่า fill type เป็น 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);
// เติมพื้นหลังแบบ solid บนรูปร่าง
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
เป็นไลบรารี C++ ฟรีที่ใช้สัญญาอนุญาต MIT สำหรับสร้าง อ่าน และแก้ไขงานนำเสนอ PowerPoint .pptx โดยไม่ต้องใช้ Microsoft Office.
PPTX เป็นรูปแบบที่รองรับการอ่าน/เขียน การส่งออกเป็น PDF, HTML, SVG หรือรูปภาพไม่พร้อมให้ใช้ในรุ่นนี้.
ไม่. Aspose.Slides FOSS เป็นไลบรารี C++ แยกส่วนที่ไม่มีการพึ่งพา Microsoft Office, COM automation, หรือ runtime ที่เป็นกรรมสิทธิ์ใด ๆ.
ใช้ CMake FetchContent เพื่อนำไลบรารีเข้าร่วมโดยตรงจาก GitHub ไลบรารีต้องการคอมไพเลอร์ที่รองรับ C++17.
ใช่. ไลบรารีรองรับเอฟเฟกต์เงานอก, แสงเรืองแสง, เบลอ, และการสะท้อนบนวัตถุรูปร่างใด ๆ ผ่าน EffectFormat API.
ใช่. ตัวทำลาย Presentation จะปล่อยสถานะภายในทั้งหมดโดยอัตโนมัติ ดังนั้นไม่จำเป็นต้องทำความสะอาดอย่างชัดเจน.
ไม่. ส่วน XML ที่ไม่รู้จักที่พบระหว่างการโหลดจะถูกเก็บไว้ตามต้นฉบับเมื่อตอนบันทึก ดังนั้นเนื้อหาที่ไลบรารียังไม่เข้าใจจะไม่สูญหาย.
ไลบรารีนี้มีสัญญาอนุญาต MIT และโฮสต์บน GitHub ยินดีรับรายงานบั๊กและ pull requests