Giới thiệu

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx các tệp trong C++ gốc, không phụ thuộc vào Microsoft Office hay bất kỳ runtime độc quyền nào.

Thư viện được thiết kế cho các nhà phát triển cần tạo hoặc thao tác các tệp trình chiếu một cách lập trình: tự động hoá các bộ slide từ dữ liệu, trích xuất văn bản và siêu dữ liệu từ các tệp PPTX đã tải lên, xây dựng các pipeline báo cáo dựa trên trình chiếu, hoặc nhúng việc tạo trình chiếu vào các ứng dụng desktop và server. Vì aspose_slides_foss được xây dựng bằng CMake, nó biên dịch và triển khai trên Windows, macOS và Linux.

Các tính năng chính

  • Hỗ trợ PPTX toàn vòng: Mở bất kỳ .pptx tệp, sửa đổi nội dung và lưu lại mà không mất các phần XML không xác định mà thư viện chưa hiểu.
  • Quản lý slide: Thêm, xóa và duyệt các slide bằng cách sử dụng prs.slides(); bản trình chiếu bắt đầu với một slide trống sau khi tạo một Presentation.
  • AutoShapes, Bảng và Kết nối: Chèn hình dạng qua slide.shapes().add_auto_shape(), dữ liệu bảng qua slide.shapes().add_table(), và các kết nối trực quan giữa các hình dạng qua slide.shapes().add_connector().
  • Định dạng văn bản phong phú: Định dạng văn bản ở mức ký tự bằng PortionFormat: kích thước phông chữ, in đậm, in nghiêng, gạch chân và màu ARGB qua FillType::SOLIDColorFormat.
  • Các loại điền: Áp dụng FillType::SOLID, Gradient, Pattern, hoặc Picture điền vào bất kỳ hình dạng nào.
  • Hiệu ứng hình ảnh: Bóng ngoài, ánh sáng, viền mềm, mờ, phản chiếu, và bóng trong qua shape.effect_format().
  • 3D formatting: Góc bo, camera, bộ đèn, vật liệu, và độ sâu đùn qua shape.three_d_format().
  • Ghi chú người thuyết trình: Đính kèm văn bản ghi chú vào mỗi slide qua notes_slide_manager().add_notes_slide().
  • Bình luận dạng chuỗi: Thêm bình luận kèm siêu dữ liệu tác giả và vị trí slide.
  • Hình ảnh nhúng: Nhúng từ đường dẫn tệp, bộ đệm bộ nhớ, hoặc luồng.
  • Thuộc tính tài liệu: Đọc và ghi các thuộc tính lõi, ứng dụng và tùy chỉnh.

Bắt đầu

Thêm thư viện qua CMake. Yêu cầu trình biên dịch C++17.

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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

Tạo bản trình bày đầu tiên của bạn với một hình dạng và lưu lại:

#include <Aspose/Slides/Foss/presentation.h>

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Hàm Presentation hàm hủy giải phóng tất cả các tài nguyên nội bộ một cách tự động khi nó ra khỏi phạm vi.

Ví dụ Định dạng Văn bản

#include <Aspose/Slides/Foss/presentation.h>

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

Các hạn chế hiện tại

Các khu vực sau sẽ ném ngoại lệ trong phiên bản này:

  • Biểu đồ, SmartArt và các đối tượng OLE
  • Hoạt ảnh và chuyển đổi slide
  • Xuất ra PDF, HTML, SVG hoặc các định dạng hình ảnh
  • Liên kết siêu văn bản, cài đặt hành động, macro VBA và chữ ký số

Các phần XML không xác định gặp phải trong quá trình tải sẽ được giữ nguyên khi lưu, vì vậy các tệp PPTX được tạo bởi các công cụ khác có thể quay lại một cách an toàn.

Xem Thêm