水印以機密、草稿等文本標識文檔的狀態,並使原始文檔難以復制。水印還用於通過顯示公司名稱或徽標來指定文檔的所有權。 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 刪除水印 在線工具。