ドキュメント内の透かしは、機密、ドラフトなどのテキストでドキュメントの状態を識別し、元のドキュメントのコピーを困難にします。透かしは画像ベースまたはテキストベースにすることができ、PDFドキュメントで頻繁に使用されます。 C++アプリケーション内のPDFドキュメントに透かしを追加する必要がある場合があります。そのために、この記事では、C++を使用してPDFドキュメントにテキストと画像の透かしを追加および削除する方法を説明します。
- テキスト/画像の透かしを挿入および削除するためのC++API
- C++を使用してPDFファイルにテキスト透かしを挿入する
- C++を使用してPDFファイルに画像透かしを挿入する
- C++を使用してPDFファイルからテキストまたは画像の透かしを削除します
テキスト/画像の透かしを挿入および削除するためのC++API
Aspose.PDF for C++は、PDFドキュメントの作成、読み取り、更新を可能にするC++ライブラリです。さらに、APIは、PDFドキュメントでの画像/テキスト透かしの挿入と削除をサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.PDF.Cpp
C++を使用してPDFファイルにテキスト透かしを挿入する
Aspose.PDF for C++ APIを使用すると、テキスト透かしのフォントスタイル、テキスト、色、角度、不透明度などを制御できます。以下は、PDFファイルにテキスト透かしを追加する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- 透かしテキストを使用してTextStampクラスのインスタンスを作成します。
- 透かしの位置とその他のプロパティを設定します。
- Document->get_Pages()->idx_get(1)->AddStamp(System::SharedPtr stamp)メソッド。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して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);
C++を使用してPDFファイルに画像透かしを挿入する
画像の透かしは通常、ロゴやその他の識別可能な画像を使用して、ドキュメントの所有権を示すために使用されます。以下の手順を使用して、PDFファイルに画像透かしを追加できます。
- Documentクラスを使用してPDFファイルをロードします。
- 透かし画像を使用してImageStampクラスのインスタンスを作成します。
- 透かしの位置とその他のプロパティを設定します。
- Document->get_Pages()->idx_get(1)->AddStamp(System::SharedPtr stamp)メソッド。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して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);
C++を使用してPDFファイルからテキストまたは画像の透かしを削除します
PDFドキュメントから透かしを削除する必要があるシナリオがあるかもしれません。前の例では、テキストと画像の両方の透かしのIDを定義しました。これらのIDを使用して、PDFドキュメントから透かしを削除します。以下は、PDFファイルから透かしを削除する手順です。
- PdfContentEditorクラスのインスタンスを作成します。
- PdfContentEditor->BindPdf(System::String inputFile)メソッドを使用してPDFドキュメントをロードします。
- PdfContentEditor->DeleteStampById(int32_t StampId)メソッドを使用して透かしを削除します。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して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の詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。