介绍
Aspose.Slides FOSS for C++ (aspose_slides_foss) 是一个免费、采用 MIT 许可证的库,用于在原生 C++ 中创建和编辑 PowerPoint .pptx 文件。它可在 Windows、macOS 和 Linux 上运行,且不依赖 Microsoft Office。
本文将逐步介绍当前版本中可用的关键特性。
关键特性
演示文稿加载与保存
Presentation 是根对象。使用无参构造可创建新文件,或传入文件路径以加载已有文件。调用 save() 并提供路径,随后使用 SaveFormat 写入输出:
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
// Create new
Presentation prs;
prs.save("output.pptx", SaveFormat::PPTX);
// Load and save
Presentation prs2("existing.pptx");
prs2.save("copy.pptx", SaveFormat::PPTX);
幻灯片管理
slides() 方法返回幻灯片集合。使用 add_empty_slide() 添加幻灯片,使用 remove() 删除幻灯片,并通过索引访问现有幻灯片:
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& slide = prs.slides()[0]; // First slide (created automatically)
// Add a second slide using the first master/layout
auto& layout = prs.masters()[0].layout_slides()[0];
auto& newSlide = prs.slides().add_empty_slide(layout);
prs.save("two_slides.pptx", SaveFormat::PPTX);
AutoShape 插入和文本
使用 slide.shapes().add_auto_shape() 添加形状。通过 shape.text_frame() 访问文本框以设置文本内容:
#include <Aspose/Slides/Foss/auto_shape.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>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100
);
shape.text_frame()->set_text("Hello from Aspose.Slides FOSS");
prs.save("shape_demo.pptx", SaveFormat::PPTX);
实心填充
对任意形状使用带有 ARGB 颜色的 FillType::SOLID:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 400, 200
);
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(0xFF, 0x46, 0x82, 0xB4);
prs.save("solid_fill.pptx", SaveFormat::PPTX);
视觉效果
通过 shape.effect_format() 应用外部阴影、发光和柔边效果:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 300, 150
);
auto& ef = shape.effect_format();
ef.enable_outer_shadow_effect();
ef.outer_shadow_effect().set_blur_radius(8);
ef.outer_shadow_effect().set_distance(6);
ef.outer_shadow_effect().set_direction(45);
prs.save("shadow.pptx", SaveFormat::PPTX);
快速入门
通过 CMake 添加库(需要 C++20 编译器):
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)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <Aspose/Slides/Foss/export/save_format.h>
int main() {
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 400, 150
);
shape.text_frame()->set_text("My first slide");
prs.save("first.pptx", SaveFormat::PPTX);
return 0;
}
支持的格式
| 格式 | 扩展名 | 读取 | 写入 |
|---|---|---|---|
| PPTX | .pptx | — | ✓ |
开源与许可
Aspose.Slides FOSS for C++ 在 MIT 许可证下发布。通过 CMake 从源代码构建。允许商业使用、再分发和修改。