この記事は、** PDF、Word、Excel、PowerPointおよびVisioからテキストまたは画像透かしを検索して削除する方法を探しているJava開発者に役立ちます。 **ドキュメント。私たちの投稿の1つで、C#のドキュメントから透かしを見つけて削除するを学びました。ここで、さまざまな方法でさまざまなドキュメントから透かしを追加、検索、および削除できるJavaAPIについて簡単に説明します。
透かしと削除のためのJavaAPI
** GroupDocs.Watermark for Java ** APIは、さまざまなドキュメント形式へのテキストと画像の透かしの追加をサポートしています。さらに、ドキュメントから透かしを見つけて削除する機能もあります。 APIは、サードパーティのツールを使用して追加された透かしオブジェクトも検出します。それでは、Javaでいくつかの手順でドキュメントから透かしを削除する方法を示しましょう。
JARはダウンロードセクションから取得するか、MavenベースのJavaアプリケーションのpom.xmlに次の構成を追加することができます。 APIの詳細については、APIリファレンスをご覧ください。
<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ドキュメントをご覧ください。このドキュメントを使用して、透かしを削除します。

**1.**新しいプロジェクトを作成します。
**2.**次のインポートを追加します。
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;
import com.groupdocs.watermark.search.ImageSearchCriteria;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;
import com.groupdocs.watermark.search.SearchCriteria;
import com.groupdocs.watermark.search.TextSearchCriteria;
3. Watermarker クラスのインスタンスを作成し、ソースドキュメントをロードします。
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
4. searchメソッドを使用して、構成された検索条件に基づいて透かしを検索します。
// 画像透かしの検索基準を構成する
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// テキスト透かしの検索基準を構成する
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// テキストと画像の検索条件を組み合わせる
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
5. 透かしコレクションを繰り返し処理し、removeAtメソッドを使用して透かしを削除します。
//可能な透かしの収集を繰り返し、透かしを確認して削除します
while(possibleWatermarks.getCount()>0)
{
if (possibleWatermarks.get_Item(0).getImageData() != null)
{
possibleWatermarks.removeAt(0);
System.out.println("Removed Image Watermark.");
}
else
{
possibleWatermarks.removeAt(0);
System.out.println("Removed Text Watermark.");
}
}
6. saveメソッドを使用して結果のドキュメントを保存します。
watermarker.save("filepath/without_watermark.pdf");
watermarker.close();
さまざまな方法を使用して、ドキュメントから透かしを見つけて削除する他の方法もいくつかあります。ドキュメントのすべての透かしを削除したい場合、またはさまざまな種類のいくつかの選択的な透かしを削除したい場合:
- 可能なすべての透かしを収集できます。
- 透かしコレクションを反復処理するか、インデックスを使用して透かしに直接アクセスします。
- 必要に応じて、透かしの種類とデータを確認します。
- 要件を満たしている場合は、削除してください。
** remove 、 removeAt 、および clear は、透かしを削除するために適宜使用できるメソッドです。詳細については、Javaでの透かしの検索と変更に関するドキュメント**の記事をご覧ください。
完全なコード
// JavaでPDF、Word、Excel、PowerPoint、Visioのドキュメントから透かしを見つけて削除する
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document
// 画像透かしの検索基準を構成する
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// テキスト透かしの検索基準を構成する
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// テキストと画像の検索条件を組み合わせる
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
//可能な透かしの収集を繰り返し、透かしを確認して削除します
while(possibleWatermarks.getCount()>0)
{
if (possibleWatermarks.get_Item(0).getImageData() != null)
{
possibleWatermarks.removeAt(0);
System.out.println("Removed Image Watermark.");
}
else
{
possibleWatermarks.removeAt(0);
System.out.println("Removed Text Watermark.");
}
}
watermarker.save("filepath/without_watermark.pdf");
watermarker.close();
結果
以下は、透かしを削除した後に取得したPDFドキュメントのスクリーンショットです。

結論
Java開発者として、MicrosoftおよびOpenOfficeでサポートされているワードプロセッシングドキュメント、スプレッドシート、プレゼンテーションからあらゆる種類のウォーターマークを見つけて削除することを躊躇しないと思います。 ** PDF ドキュメント、およびVisio**図面。
ドキュメントからAPIの詳細を調べることができます。ご不明な点がございましたら、@forumまでお問い合わせください。