1. ผลิตภัณฑ์
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS สำหรับ C++

สร้าง, อ่าน, และแก้ไขงานนำเสนอ PowerPoint จาก C++ — ฟรีและเปิดแหล่งที่มา, ไม่ต้องพึ่งพา Office.

ไลบรารี C++ แบบเปิดแหล่งที่มาสำหรับงานนำเสนอ PowerPoint

Aspose.Slides FOSS สำหรับ C++ คือไลบรารีที่ใช้ใบอนุญาต MIT สำหรับทำงานกับไฟล์ PowerPoint .pptx. ผสานรวมผ่าน CMake FetchContent และเริ่มสร้าง, อ่าน, และแก้ไขงานนำเสนอได้ทันทีโดยไม่ต้องติดตั้ง Microsoft Office หรือรันไทม์ที่เป็นกรรมสิทธิ์ใด ๆ.

ไลบรารีนี้เปิดเผย Presentation API ที่สร้างขึ้นรอบ ๆ Presentation, Slide, ShapeCollection, TextFrame, Paragraph และ Portion, โมเดลเชิงแนวคิดที่ PowerPoint เองใช้. เพิ่มและลบสไลด์, แทรก AutoShapes, ตาราง, และคอนเน็กเตอร์, จัดรูปแบบข้อความในระดับอักขระด้วยตัวหนา, ตัวเอียง, ขนาดและสีของฟอนต์, ใช้การเติมสีแบบทึบหรือไล่สี, และเพิ่มเอฟเฟกต์ภาพ (เงา, แสงเรืองแสง, เบลอ, การสะท้อน).

RAII semantics ทำให้การทำความสะอาดทรัพยากรเป็นไปอย่างเชื่อถือได้: ตัวทำลายของ 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().
  • Speaker notes: อ่านและเขียนบันทึกผู้พูดต่อสไลด์ผ่าน NotesSlideManager.
  • คอมเมนต์แบบเธรด: เข้าถึงเธรดคอมเมนต์โดยการวนซ้ำ pres.comment_authors() และคอมเมนต์ที่เกี่ยวข้องของมัน.

ที่ที่ Aspose.Slides FOSS สามารถใช้ได้

  • การสร้างรายงาน: สร้างชุดสไลด์ที่มีแบรนด์จากแหล่งข้อมูลโดยไม่ต้องใช้ Office.
  • การทำอัตโนมัติของเทมเพลต: เติมเทมเพลต PPTX ด้วยเนื้อหาแบบไดนามิกใน pipeline CI/CD.
  • การย้ายเนื้อหา: อ่านการนำเสนอที่มีอยู่และจัดโครงสร้างใหม่หรือปรับสไตล์สไลด์ใหม่.
  • ระบบฝังตัว: ประมวลผลไฟล์ PPTX ในสภาพแวดล้อมที่ต้องการประสิทธิภาพสูงหรือมีข้อจำกัดด้านทรัพยากร
  • การประมวลผลแบบชุด: ใช้การเปลี่ยนแปลงการจัดรูปแบบที่สอดคล้องกันทั่วไลบรารีสไลด์เด็คขนาดใหญ่.

การจัดรูปแบบข้อความและเอฟเฟกต์ภาพ

  • การจัดรูปแบบระดับอักขระ: ใช้ตัวหนา, ตัวเอียง, ขนาดฟอนต์, และสีกับวัตถุ Portion แต่ละอันผ่าน PortionFormat.
  • การเติมแบบทึบและไล่สี: ตั้งค่าการเติมรูปทรงเป็นสีทึบหรือไล่สีเชิงเส้นหลายจุดโดยใช้ FillFormat และ FillType
  • เอฟเฟกต์เงาและแสงเรืองแสง: ใช้เงานอก, แสงเรืองแสง, เบลอ, และการสะท้อนกับรูปทรงใด ๆ ผ่าน EffectFormat.
  • การจัดแนวย่อหน้า: ตั้งค่าการจัดแนวซ้าย, กลาง, ขวา หรือจัดชิดเต็มตามย่อหน้าด้วย ParagraphFormat และ set_alignment().
  • ปลอดภัยในการทำรอบ: ส่วนที่ไม่รู้จัก XML จะถูกเก็บไว้ตามต้นฉบับเมื่อบันทึกใหม่.

ประสบการณ์ของนักพัฒนา

Aspose.Slides FOSS ผสานรวมผ่าน CMake FetchContent ดังนั้นจึงไม่จำเป็นต้องดาวน์โหลดด้วยตนเองหรือการติดตั้งระดับระบบ ไลบรารีจะสร้างจากซอร์สโค้ดพร้อมกับโปรเจกต์ของคุณ.

API สะท้อนโมเดลวัตถุของ PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion) ดังนั้นผู้ที่คุ้นเคยกับโมเดลวัตถุของ PowerPoint สามารถใช้ไลบรารีได้ทันที. มันได้รับใบอนุญาต MIT-licensed, เป็นโอเพนซอร์สบน GitHub, และต้องการคอมไพเลอร์ที่รองรับ C++20-compliant.

สร้างการนำเสนอและเพิ่มรูปทรง

RAII ทำให้แน่ใจว่า destructor ของ 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 automation, หรือ runtime ที่เป็นกรรมสิทธิ์ใดๆ

ฉันจะติดตั้งมันอย่างไร?

ใช้ CMake FetchContent เพื่อรวมไลบรารีโดยตรงจาก GitHub. ไลบรารีต้องการคอมไพเลอร์ที่รองรับ C++20

ฉันสามารถใช้เอฟเฟกต์ภาพเช่นเงาและแสงเรืองแสงได้หรือไม่?

ใช่. ไลบรารีรองรับเงานอก, แสงเรืองแสง, เบลอ, และเอฟเฟกต์การสะท้อนบนวัตถุรูปร่างใดก็ได้ผ่าน API EffectFormat

ไลบรารีนี้ใช้ RAII สำหรับการจัดการทรัพยากรหรือไม่?

ใช่. ตัวทำลาย Presentation จะปล่อยสถานะภายในทั้งหมดโดยอัตโนมัติ, ดังนั้นจึงไม่จำเป็นต้องทำความสะอาดอย่างชัดเจน

การทำ round‑tripping ไฟล์ PPTX จะทำให้เนื้อหาที่ไม่รู้จักเสียหายหรือไม่?

ไม่. ส่วน XML ที่ไม่รู้จักที่พบระหว่างการโหลดจะถูกเก็บไว้ตามต้นฉบับเมื่อตอนบันทึก, ดังนั้นเนื้อหาที่ไลบรารียังไม่เข้าใจจะไม่สูญหาย

ฉันจะหาโค้ดต้นฉบับได้จากที่ไหน?

ไลบรารีนี้ใช้สัญญาอนุญาต MIT และโฮสต์บน GitHub. รายงานบั๊กและคำขอดึง (pull request) ยินดีรับ

  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย