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ỳ
.pptxtệ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ộtPresentation. - 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 quaslide.shapes().add_table(), và các kết nối trực quan giữa các hình dạng quaslide.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 quaFillType::SOLIDvàColorFormat. - Các loại điền: Áp dụng
FillType::SOLID,Gradient,Pattern, hoặcPictuređ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.