
透かし画像またはテキストは、ドキュメントの作成者または著作権情報を識別するために使用されます。ドキュメント内の使用可能なすべての透かしを検出して、それらを削除できます。 Java開発者は、プログラムでドキュメントから透かしを簡単に削除できます。この記事では、Javaを使用してPDFドキュメントから透かしを削除する方法を学習します。
この記事では、次のトピックについて説明/取り上げています。
- 透かし除去用のJavaAPI
- Javaを使用してPDFからすべての透かしを削除する
- Javaを使用したPDFからのテキストのみの透かしの削除
- 特定のテキストフォーマットで透かしを削除する
- Javaを使用したPDFからの画像のみの透かしの削除
透かし除去用のJavaAPI
PDFドキュメントから透かしを削除するためにGroupDocs.WatermarkforJavaAPIを使用します。これにより、画像およびテキストの透かし操作を実行できます。また、Word、Excel、Powerpoint, PDFなどのサポートされている形式のファイルで、新しい透かしを適用したり、既存の透かしを検索および削除したりすることもできます。
APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加して、以下のコード例を試すことができます。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>20.5</version>
</dependency>
Javaを使用してPDFからすべての透かしを削除する
以下に説明する簡単な手順に従うことで、PDFドキュメントからすべての透かしを簡単に削除できます。
- Watermarkerクラスのインスタンスを作成します
- 入力PDFファイルへのパスを指定します
- search()メソッドを呼び出して、PossibleWatermarkCollectionにデータを入力します
- clear()メソッドを呼び出して、すべての透かしを削除します
- 更新したファイルを保存します
次のコードサンプルは、Javaを使用してPDFドキュメントで使用可能なすべての透かしを削除する方法を示しています。
// インスタンスを作成する
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");
// 可能なすべての透かしを検索
PossibleWatermarkCollection possibleWatermarks = watermarker.search();
// 見つかった透かしをすべて削除します
possibleWatermarks.clear();
// 更新したファイルを保存する
watermarker.save("C:\\Files\\output.pdf");
watermarker.close();

Javaを使用してPDFからすべての透かしを削除する
Watermarkerクラスは、ドキュメント内の透かしの追加、削除、および検索を容易にします。
PossibleWatermarkCollectionクラスは、コンテンツで見つかった可能性のある透かしのコレクションを表します。
Watermarkerクラスのsearch()メソッドは、ドキュメント内のすべての可能な透かしを検索します。結果セットをPossibleWatermarkCollectionとして返します。
Javaを使用したPDFからのテキストのみの透かしの削除
以下に説明する簡単な手順に従うことで、PDFドキュメントからすべてのテキストのみの透かしを簡単に削除できます。
- Watermarkerクラスのインスタンスを作成します
- 入力PDFファイルへのパスを指定します
- search()メソッドを呼び出して、PossibleWatermarkCollectionにデータを入力します
- getText()がすべてのPossibleWatermarksに対してnullまたは空でないかどうかを確認します
- 次に、インデックスをremoveAt()メソッドに渡して削除します
- 更新したファイルを保存します
次のコードサンプルは、Javaを使用してPDFドキュメントで使用可能なテキスト透かしのみを削除する方法を示しています。
// インスタンスを作成する
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");
// 可能なすべての透かしを検索
PossibleWatermarkCollection possibleWatermarks = watermarker.search();
// 見つかった透かしをすべて削除します
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
if(possibleWatermarks.get_Item(i).getText() != null && possibleWatermarks.get_Item(i).getText() != "")
{
possibleWatermarks.removeAt(i);
}
}
// 更新されたドキュメントを保存する
watermarker.save("C:\\Files\\output.pdf");
watermarker.close();

Javaを使用したPDFからのテキストのみの透かしの削除
removeAt()メソッドは、PossibleWatermarksCollectionから指定されたインデックスのアイテムを削除します。
特定のテキストフォーマットで透かしを削除する
以下に説明する簡単な手順に従って、PDFドキュメントから特定のフォーマットで使用可能なテキスト透かしを削除できます。
- Watermarkerクラスのインスタンスを作成します
- 入力PDFファイルへのパスを指定します
- TextFormattingSearchCriteriaを定義します
- search()メソッドを呼び出して、PossibleWatermarkCollectionにデータを入力します
- clear()メソッドを呼び出して、見つかったすべての透かしを削除します
- 更新したファイルを保存します
次のコードサンプルは、Javaを使用してPDFドキュメントから特定のテキスト形式のテキスト透かしを削除する方法を示しています。
// インスタンスを作成する
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");
// テキストフォーマットの検索条件を定義する
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(false);
// 可能な透かしを検索する
PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();
// 更新されたドキュメントを保存する
watermarker.save("C:\\Files\\output.pdf");
watermarker.close();

特定のテキストフォーマットで透かしを削除する
Javaを使用したPDFからの画像のみの透かしの削除
以下に説明する簡単な手順に従うことで、PDFドキュメントからすべての画像のみの透かしを簡単に削除できます。
- Watermarkerクラスのインスタンスを作成します
- 入力PDFファイルへのパスを指定します
- search()メソッドを呼び出して、PossibleWatermarkCollectionにデータを入力します
- getImageData()がすべてのPossibleWatermarksに対してnullではないかどうかを確認します
- 次に、インデックスをremoveAt()メソッドに渡して削除します
- 更新したファイルを保存します
次のコードサンプルは、Javaを使用してPDFドキュメントで使用可能な画像透かしのみを削除する方法を示しています。
// インスタンスを作成する
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");
// 可能なすべての透かしを検索
PossibleWatermarkCollection possibleWatermarks = watermarker.search();
// すべての画像透かしを削除します
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
if(possibleWatermarks.get_Item(i).getImageData() != null)
{
possibleWatermarks.removeAt(i);
}
}
// 更新されたドキュメントを保存する
watermarker.save("C:\\Files\\output.pdf");
watermarker.close();

Javaを使用したPDFからの画像のみの透かしの削除
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、Javaを使用してPDFドキュメントからテキストまたは画像の透かしを削除する方法を学習しました。さらに、ドキュメントからテキストのみまたは画像のみの透かしを削除する方法を学習しました。 ドキュメントを使用して、GroupDocs.Watermark forJavaAPIの詳細を確認できます。あいまいな点がありましたら、フォーラムまでお気軽にお問い合わせください。