透かしは主に、ドラフトとしてドキュメントに言及するため、および機密ドキュメントの違法な使用を回避するために使用されます。ファイナライズされたドラフトまたは機密性が終了したら、そのようなドキュメントから透かしを削除できます。透かしは、テキストベースまたは画像ベースのいずれかです。この記事では、JavaでPDFドキュメントから透かしを削除する方法について説明します。

プログラムで透かしをPDFファイルから削除します。

PDF透かしを削除するJavaAPI

GroupDocs.Watermarkは、さまざまなファイル形式のドキュメントおよび画像内の透かしを処理するJavaAPIを提供します。あなたが透かし除去アプリを作っているなら、それはあなたにいくつかの便利な方法を提供します:

  • PDFドキュメントからすべての透かしを削除します
  • ハイパーリンクの透かしを削除します
  • 特定のテキスト形式の透かしを削除します

Java開発者がGroupDocs.WatermarkforJavaAPIをさまざまな方法で使用してPDFから透かしを削除する方法を学びましょう。まず、アプリケーションでAPIをダウンロードして構成します。

ダウンロードまたは構成

JARファイルはdownloadsセクションからダウンロードするか、Javaアプリケーション内で最新のリポジトリーと依存関係Maven構成を使用できます。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-watermark</artifactId>
        <version>21.3</version> 
</dependency>

JavaのPDFファイルからすべての透かしを削除します

APIを使用すると、特定の透かしとすべての透かしをドキュメントから簡単に見つけて削除することができます。次の手順は、JavaでPDFドキュメントからすべての透かしを削除する方法を示しています。

  • Watermarkerを使用してPDFドキュメントをロードします。
  • 検索を使用して、すべての可能な透かしをコレクションとして取得します。
  • コレクション全体をトラバースし、すべての透かしまたは基準を満たす透かしを削除します。
  • 透かしのない更新されたPDFを保存します。

次のJavaコードは、PDFドキュメントからすべての透かしを削除します。

// JavaのPDFおよびその他のドキュメントから透かしを削除します
Watermarker watermarker = new Watermarker("filepath/document-with-watermarks.pdf");

PossibleWatermarkCollection possibleWatermarks = watermarker.search();
for (int i = 0 ; i < watermarks.getCount(); i++)
{
    // ドキュメント内のインデックスに言及して、すべての透かしを削除します。
    possibleWatermarks.removeAt(i);
}
watermarker.save("filepath/no-watermarks.pdf");
watermarker.close();

Javaでハイパーリンク透かしを削除する

透かしAPIを使用すると、PDFドキュメントからハイパーリンクを検索して削除できます。次の手順では、Javaアプリケーション内のPDFドキュメントからハイパーリンク透かしを削除できます。

  • Watermarkerを使用してPDFファイルをロードします。
  • 検索を使用して、可能な透かしをコレクションとして取得します。
  • コレクションをトラバースし、基準を満たす透かしを削除します。
  • 更新されたPDFを透かしなしで保存します。

次のJavaコードサンプルは、PDFドキュメントから特定のURLのハイパーリンク透かしを見つけて削除する方法を示しています。

// JavaでPDFからハイパーリンク透かしを削除する
Watermarker watermarker = new Watermarker("path/watermark-document.pdf");

PossibleWatermarkCollection watermarks = watermarker.search(new TextSearchCriteria(Pattern.compile("someurl.com")));
for (int i = 0 ; i < watermarks.getCount(); i++)
{
    if (HyperlinkPossibleWatermark.class.isInstance(watermarks.get_Item(i)))
    {
        System.out.println(watermarks.get_Item(i).getText());
        watermarks.removeAt(i);
    }
}
watermarker.save("path/no-hyperlink-watermarks.pdf");

Javaで特定のテキストフォーマットを使用してPDFから透かしを削除する

特定のテキスト形式の透かしも削除できます。検索条件として、フォント名、サイズ、色などを指定できます。 APIは、プロパティが一致する透かしを検索します。次の手順は、Javaで特定のテキスト形式のPDFファイルから透かしを検索して削除する方法を示しています。

  • Watermarkerを使用してPDFファイルをロードします。
  • TextFormattingSearchCriteriaを使用して検索条件を設定します。
  • 必要なすべてのフォーマットプロパティを提供します。
  • 定義された基準を提供することにより、すべての可能な透かしをコレクションとして検索して取得します。
  • **clear() **メソッドを使用して、検索されたすべての透かしを削除します。
  • 定義されたプロパティで透かしのない更新されたPDFを保存します。

次のJavaコードは、指定されたテキスト形式のPDFドキュメントの透かしを削除します。

// JavaのPDFから特定のテキスト形式の透かしを削除する
Watermarker watermarker = new Watermarker("path/watermarks.pdf");

TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setForegroundColorRange(new ColorRange());
criteria.getForegroundColorRange().setMinHue(-5);
criteria.getForegroundColorRange().setMaxHue(10);
criteria.getForegroundColorRange().setMinBrightness(0.01f);
criteria.getForegroundColorRange().setMaxBrightness(0.99f);
criteria.setBackgroundColorRange(new ColorRange());
criteria.getBackgroundColorRange().setEmpty(true);
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(true);

PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();
watermarker.save("path/removed-watermarks.pdf");
watermarker.close();

結論

要約すると、JavaでPDFドキュメントからさまざまな透かしを削除する方法を学びました。適用されたすべての透かしを具体的に削除してから、ハイパーリンクの透かしと特定のテキスト形式の透かしを削除しました。 PDFドキュメントから透かしを見つけて削除するための独自のJavaアプリケーションを作成してみてください。さらに、GroupDocs.Watermark for Javaについては、そのドキュメントから詳しく知ることができます。お問い合わせは、フォーラムまでお問い合わせください。

関連項目