水印以机密、草稿等文本标识文档的状态,并使原始文档难以被复制。水印还用于通过显示公司名称或徽标来指定文档的所有权。 PowerPoint 文件中的水印可以是基于图像或基于文本的。在本文中,您将学习如何使用 C++ 为 PowerPoint 幻灯片添加文本和图像水印。
用于向 PowerPoint 幻灯片添加水印的 C++ API
我们将使用 Aspose.Slides for C++ API 为 PowerPoint 幻灯片添加水印。它是一个强大且功能丰富的 API,支持创建、读取和更新 PowerPoint 文件,而无需额外的软件。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Slides.Cpp
使用 C++ 将文本水印添加到 PowerPoint 幻灯片
您可以按照以下步骤将文本水印添加到 PowerPoint 幻灯片。
- 首先,使用 Presentation 类加载 PowerPoint 文件。
- 检索母版幻灯片。
- 计算水印的位置。
- 使用 IMasterSlide->getShapes()->AddAutoShape(ShapeType shapeType, float x, float y, float width, float height) 方法添加形状。
- 使用 IAutoShape->AddTextFrame(System::String text) 方法将文本框架添加到形状。
- 设置水印的字体大小、颜色和旋转角度。
- 锁定水印,使其无法移动或删除。
- 最后,使用 Presentation->Save(System::String fname, Export::SaveFormat format) 方法保存 PowerPoint 文件。
以下示例代码展示了如何使用 C++ 向 PowerPoint 幻灯片添加文本水印。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\Slides\\Presentation2.pptx";
const String outputFilePath = u"OutputDirectory\\AddTextWatermark_out.pptx";
// 加载演示文件
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// 访问母版幻灯片
auto master = presentation->get_Masters()->idx_get(0);
System::Drawing::PointF center(presentation->get_SlideSize()->get_Size().get_Width() / 2, presentation->get_SlideSize()->get_Size().get_Height() / 2);
float width = 300.0f;
float height = 300.0f;
float x = center.get_X() - width / 2;
float y = center.get_Y() - height / 2;
// 添加形状
auto watermarkShape = master->get_Shapes()->AddAutoShape(ShapeType::Rectangle, x, y, width, height);
// 设置填充类型
watermarkShape->get_FillFormat()->set_FillType(FillType::NoFill);
watermarkShape->get_LineFormat()->get_FillFormat()->set_FillType(FillType::NoFill);
// 设置旋转角度
watermarkShape->set_Rotation(-45);
// 设置文本
auto watermarkTextFrame = watermarkShape->AddTextFrame(u"Watermark");
// 设置字体和颜色
auto watermarkPortion = watermarkTextFrame->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
watermarkPortion->get_PortionFormat()->set_FontHeight(52.0f);
int32_t alpha = 150, red = 200, green = 200, blue = 200;
watermarkPortion->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid);
watermarkPortion->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::FromArgb(alpha, red, green, blue));
// 从修改中锁定形状
watermarkShape->get_AutoShapeLock()->set_SelectLocked(true);
watermarkShape->get_AutoShapeLock()->set_SizeLocked(true);
watermarkShape->get_AutoShapeLock()->set_TextLocked(true);
watermarkShape->get_AutoShapeLock()->set_PositionLocked(true);
watermarkShape->get_AutoShapeLock()->set_GroupingLocked(true);
// 保存演示文稿
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
使用 C++ 将图像水印添加到 PowerPoint 幻灯片
要为 PowerPoint 幻灯片添加图像水印,请按照以下步骤操作。
- 首先,使用 Presentation 类加载 PowerPoint 文件。
- 检索母版幻灯片。
- 计算水印的位置。
- 使用 IMasterSlide->getShapes()->AddAutoShape(ShapeType shapeType, float x, float y, float width, float height) 方法添加形状。
- 添加图像并在 IPPImage 对象中获取其引用。
- 使用 IAutoShape->getFillFormat()->getPictureFillFormat()->getPicture()->setImage(System::SharedPtr 设置水印图像值) 方法。
- 将IAutoShape的填充类型和图片填充模式分别设置为FillType::Picture和PictureFillMode::Stretch。
- 锁定水印,使其无法移动或删除。
- 最后,使用Presentation->Save(System::String fname, Export::SaveFormat format)方法保存PowerPoint文件。
以下示例代码展示了如何使用 C++ 向 PowerPoint 幻灯片添加图像水印。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\Slides\\Presentation2.pptx";
const String outputFilePath = u"OutputDirectory\\AddImageWatermark_out.pptx";
// 加载演示文件
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// 访问主幻灯片
auto master = presentation->get_Masters()->idx_get(0);
System::Drawing::PointF center(presentation->get_SlideSize()->get_Size().get_Width() / 2, presentation->get_SlideSize()->get_Size().get_Height() / 2);
float width = 300.0f;
float height = 300.0f;
float x = center.get_X() - width / 2;
float y = center.get_Y() - height / 2;
// 添加形状
auto watermarkShape = master->get_Shapes()->AddAutoShape(ShapeType::Rectangle, x, y, width, height);
auto image = presentation->get_Images()->AddImage(File::ReadAllBytes(u"SourceDirectory\\Images\\AsposeLogo.png"));
// 设置填充类型
watermarkShape->get_FillFormat()->set_FillType(FillType::Picture);
watermarkShape->get_FillFormat()->get_PictureFillFormat()->get_Picture()->set_Image(image);
watermarkShape->get_FillFormat()->get_PictureFillFormat()->set_PictureFillMode(PictureFillMode::Stretch);
// 从修改中锁定形状
watermarkShape->get_AutoShapeLock()->set_SelectLocked(true);
watermarkShape->get_AutoShapeLock()->set_SizeLocked(true);
watermarkShape->get_AutoShapeLock()->set_TextLocked(true);
watermarkShape->get_AutoShapeLock()->set_PositionLocked(true);
watermarkShape->get_AutoShapeLock()->set_GroupingLocked(true);
// 保存演示文稿
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
获得免费许可证
为了在没有评估限制的情况下试用 API,您可以申请 免费的临时许可证。
结论
在本文中,您学习了如何使用 C++ 向 PowerPoint 幻灯片添加水印。共享代码示例展示了如何使用 Aspose.Slides to C++ API 轻松地将图像和文本水印添加到 PowerPoint 幻灯片。它是一个强大的 API,提供了一系列用于处理 PowerPoint PPTX/PPT 文件的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。
也可以看看
信息:您可能想查看免费的 Aspose.Slides 将水印添加到 PowerPoint 和 从 PowerPoint 中删除水印 在线工具。