使用 C++ 为 PowerPoint 幻灯片添加水印

水印以机密、草稿等文本标识文档的状态,并使原始文档难以被复制。水印还用于通过显示公司名称或徽标来指定文档的所有权。 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 幻灯片。

以下示例代码展示了如何使用 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 幻灯片添加图像水印,请按照以下步骤操作。

以下示例代码展示了如何使用 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 中删除水印 在线工具。