文檔中的水印以機密、草稿等文本標識文檔的狀態,並使原始文檔難以復制。水印可以是基於圖像或文本的,經常用於 PDF 文檔中。您可能需要在 C++ 應用程序中向 PDF 文檔添加水印。為此,本文將教您如何使用 C++ 在 PDF 文檔中添加和刪除文本和圖像水印。

用於插入和刪除文本/圖像水印的 C++ API

Aspose.PDF for C++ 是一個 C++ 庫,允許您創建、閱讀和更新 PDF 文檔。此外,API 支持在 PDF 文檔中插入和刪除圖像/文本水印。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

PM> Install-Package Aspose.PDF.Cpp

使用 C++ 在 PDF 文件中插入文本水印

使用Aspose.PDF for C++ API,您可以控製文本水印的字體樣式、文本、顏色、角度、不透明度等。以下是在 PDF 文件中添加文本水印的步驟。

以下示例代碼顯示瞭如何使用 C++ 在 PDF 文件中添加文本水印。

// 打開源 PDF 文檔
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// 創建 TextStamp 類的實例
System::SharedPtr<TextStamp> textStamp = MakeObject<TextStamp>(u"CONFIDENTIAL");

// 設置水印的位置
textStamp->set_XIndent(70);
textStamp->set_YIndent(300);

// 設置文本屬性
textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
textStamp->get_TextState()->set_FontSize(72.0F);
textStamp->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textStamp->set_Opacity(0.4);
textStamp->set_RotateAngle(45);
textStamp->setStampId(123456);

// 將水印添加到 PDF 頁面
pdfDocument->get_Pages()->idx_get(1)->AddStamp(textStamp);

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Text-Watermark-Out.pdf", SaveFormat::Pdf);
示例代碼生成的輸出 PDF 文件的圖像

示例代碼生成的輸出 PDF 文件的圖像

使用 C++ 在 PDF 文件中插入圖像水印

圖像水印通常用於通過使用徽標或任何其他可識別圖像來顯示文檔的所有權。您可以使用以下步驟將圖像水印添加到 PDF 文件。

以下示例代碼演示瞭如何使用 C++ 在 PDF 文件中添加圖像水印。

// 打開源 PDF 文檔
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// 創建 ImageStamp 類的實例
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");

// 設置水印的位置
imageStamp->set_XIndent(150);
imageStamp->set_YIndent(350);

// 設置其他屬性
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_RotateAngle(45);
imageStamp->set_Opacity(0.4);
imageStamp->setStampId(12345678);

// 將水印添加到 PDF 頁面
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Image-Watermark-Out.pdf", SaveFormat::Pdf);
示例代碼生成的輸出 PDF 文件的圖像

示例代碼生成的輸出 PDF 文件的圖像

使用 C++ 從 PDF 文件中刪除文本或圖像水印

在某些情況下,您可能需要從 PDF 文檔中刪除水印。在前面的示例中,我們為文本和圖像水印定義了 id。我們將使用這些 ID 從 PDF 文檔中刪除水印。以下是從 PDF 文件中刪除水印的步驟。

以下示例代碼顯示瞭如何使用 C++ 從 PDF 文件中刪除文本和圖像水印。

// 創建 PdfContentEditor 類的實例
System::SharedPtr<PdfContentEditor> contentEditor = MakeObject<PdfContentEditor>();

// 打開包含水印的PDF文件
contentEditor->BindPdf(u"SourceDirectory\\SampleImageWatermark.pdf");

// 按id刪除水印
contentEditor->DeleteStampById(12345678);

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Remove-Watermark-Out.pdf", SaveFormat::Pdf);

獲得免費許可證

您可以通過申請 免費的臨時許可證 來試用沒有評估限制的 API。

結論

在本文中,您學習瞭如何使用 C++ 處理 PDF 文件中的水印。具體來說,您已經學習瞭如何使用 Aspose.PDF for C++ API 在 PDF 文檔中添加和刪除圖像和文本水印。 API 提供了許多附加功能來自動執行與 PDF 相關的任務。您可以通過訪問 官方文檔 來詳細探索 API。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看