1. Sản Phẩm
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS cho C++

Tạo, đọc và chỉnh sửa các bản trình chiếu PowerPoint từ C++ — miễn phí và mã nguồn mở, không cần phụ thuộc vào Office.

Thư viện C++ mã nguồn mở cho các bản trình chiếu PowerPoint

Aspose.Slides FOSS cho C++ là một thư viện mã nguồn mở được cấp phép MIT để làm việc với các tệp PowerPoint .pptx. Tích hợp nó qua CMake FetchContent và ngay lập tức bắt đầu tạo, đọc và chỉnh sửa bản trình chiếu mà không cần cài đặt Microsoft Office hay bất kỳ môi trường chạy độc quyền nào.

Thư viện cung cấp một API Presentation được xây dựng quanh các lớp Presentation, Slide, ShapeCollection, TextFrame, ParagraphPortion, mô hình khái niệm mà PowerPoint sử dụng. Thêm và xóa slide, chèn AutoShapes, Tables và Connectors, định dạng văn bản ở mức ký tự với in đậm, in nghiêng, kích thước và màu chữ, áp dụng màu nền đặc hoặc gradient, và thêm các hiệu ứng hình ảnh (shadow, glow, blur, reflection).

Ngữ nghĩa RAII đảm bảo việc dọn dẹp tài nguyên đáng tin cậy: hàm hủy Presentation tự động giải phóng toàn bộ trạng thái nội bộ. Các phần XML không xác định gặp trong quá trình tải sẽ được giữ nguyên khi lưu, vì vậy việc vòng lại không bao giờ phá hủy nội dung mà thư viện chưa hiểu. Thư viện yêu cầu một trình biên dịch tuân thủ C++17.

API Trình chiếu và Slide

  • Create and open PPTX: Tạo bản trình chiếu mới hoặc mở các tệp .pptx hiện có qua Presentation() hoặc Presentation(path).
  • Add and remove slides: Quản lý SlideCollection một cách lập trình bằng các phương thức add_clone(), remove()remove_at().
  • AutoShapes: Chèn các hình chữ nhật, hình elip, đường thẳng và các hình học ShapeType khác qua add_auto_shape().
  • Tables and Connectors: Thêm các hình dạng bảng có cấu trúc và các đường kết nối giữa các hình qua add_connector().
  • Speaker notes: Đọc và ghi các ghi chú cho từng slide thông qua NotesSlideManager.
  • Threaded comments: Truy cập các chuỗi bình luận ở mức slide bằng get_slide_comments().

Nơi Aspose.Slides FOSS có thể được sử dụng

  • Report generation: Tạo các bộ slide có thương hiệu từ nguồn dữ liệu mà không cần Office.
  • Template automation: Điền nội dung động vào các mẫu PPTX trong các pipeline CI/CD.
  • Di chuyển nội dung: Đọc các bản trình bày hiện có và tái cấu trúc hoặc thay đổi kiểu dáng các slide.
  • Hệ thống nhúng: Xử lý các tệp PPTX trong môi trường yêu cầu hiệu năng cao hoặc tài nguyên hạn chế.
  • Xử lý hàng loạt: Áp dụng các thay đổi định dạng đồng nhất trên các thư viện bộ slide lớn.

Định dạng văn bản và hiệu ứng hình ảnh

  • Character-level formatting: Áp dụng in đậm, in nghiêng, kích thước phông chữ và màu sắc cho các đối tượng Portion riêng lẻ thông qua PortionFormat.
  • Solid and gradient fills: Đặt màu nền cho hình dạng thành màu đồng nhất hoặc gradient tuyến tính đa điểm bằng cách sử dụng FillFormatFillType.
  • Shadow and glow effects: Áp dụng bóng ngoài, phát sáng, làm mờ và phản chiếu cho bất kỳ hình dạng nào thông qua EffectFormat.
  • Paragraph alignment: Đặt căn lề trái, giữa, phải hoặc canh đều cho từng đoạn văn bằng cách sử dụng ParagraphFormatset_alignment().
  • Round-trip safe: Các phần XML không xác định được giữ nguyên nguyên văn khi lưu lại.

Trải nghiệm nhà phát triển

Aspose.Slides FOSS tích hợp qua CMake FetchContent, vì vậy không cần tải xuống thủ công hay cài đặt toàn hệ thống. Thư viện được biên dịch từ mã nguồn cùng với dự án của bạn.

API phản chiếu mô hình đối tượng của PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), vì vậy bất kỳ ai quen thuộc với mô hình đối tượng PowerPoint đều có thể sử dụng thư viện ngay lập tức. Thư viện được cấp phép MIT, mã nguồn mở trên GitHub, và yêu cầu trình biên dịch tương thích C++17.

Tạo một bản trình chiếu và thêm một hình dạng

RAII đảm bảo rằng hàm hủy Presentation tự động giải phóng tất cả tài nguyên khi đối tượng ra khỏi phạm vi. add_auto_shape() nhận một enum ShapeType, sau đó là vị trí x/y và chiều rộng/chiều cao tính bằng điểm — text_frame của hình cung cấp quyền truy cập để đặt nội dung văn bản.

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];

    // Thêm một AutoShape hình chữ nhật
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("Xin chào, Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}

Định dạng văn bản và áp dụng hiệu ứng tô

Định dạng văn bản hoạt động ở mức Portion — đơn vị nhỏ nhất của một chuỗi ký tự. Mở tệp đã lưu, điều hướng đến phần đầu tiên của đoạn đầu tiên, và đặt các thuộc tính phông chữ trực tiếp. Đổ màu hình dạng là độc lập: đặt loại đổ màu thành đặc và chỉ định một màu.

#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];

    // Đậm, văn bản 18pt
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Đổ nền đặc trên hình dạng
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}

Câu Hỏi Thường Gặp

Aspose.Slides FOSS cho C++ là gì?

Đó là một thư viện C++ miễn phí, được cấp phép MIT, dùng để tạo, đọc và chỉnh sửa các bản trình chiếu PowerPoint .pptx mà không cần Microsoft Office.

Các định dạng tệp nào được hỗ trợ?

PPTX là định dạng đọc/ghi được hỗ trợ. Xuất ra PDF, HTML, SVG hoặc hình ảnh không khả dụng trong phiên bản này.

Nó có yêu cầu Microsoft Office hoặc PowerPoint không?

Không. Aspose.Slides FOSS là một thư viện C++ độc lập, không phụ thuộc vào Microsoft Office, tự động hoá COM, hay bất kỳ môi trường chạy độc quyền nào.

Làm thế nào để cài đặt nó?

Sử dụng CMake FetchContent để tích hợp thư viện trực tiếp từ GitHub. Thư viện yêu cầu một trình biên dịch tuân thủ C++17.

Tôi có thể áp dụng các hiệu ứng hình ảnh như bóng đổ và phát sáng không?

Có. Thư viện hỗ trợ các hiệu ứng bóng đổ bên ngoài, phát sáng, làm mờ và phản chiếu trên bất kỳ đối tượng hình dạng nào thông qua API EffectFormat.

Thư viện có sử dụng RAII để quản lý tài nguyên không?

Có. Hàm hủy Presentation tự động giải phóng toàn bộ trạng thái nội bộ, vì vậy không cần dọn dẹp thủ công.

Việc round-tripping một tệp PPTX có làm hỏng nội dung không xác định không?

Không. Các phần XML không xác định gặp trong quá trình tải sẽ được giữ nguyên khi lưu, vì vậy nội dung mà thư viện chưa hiểu sẽ không bị mất.

Bạn có thể tìm mã nguồn ở đâu?

Thư viện được cấp phép MIT và được lưu trữ trên GitHub. Các báo cáo lỗi và yêu cầu kéo đều được chào đón.

  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt