PDF から透かしを削除する C#

多くの場合、PDF ドキュメントには透かしが付いており、重要なコンテンツが見えにくくなったり、プレゼンテーションの見栄えが悪くなることがあります。テキスト、画像、ハイパーリンク ベースの透かしのいずれであっても、簡単に削除できます。この記事では、一般的な 2 つのシナリオ、つまり PDF から一般的な透かしを削除する方法と、C# でハイパーリンクの透かしを削除する方法について説明します。

PDF から透かしを削除する - C# API のインストール

PDF ドキュメントから透かしを削除するには、環境に Conholdate.Total for .NET API をインストールする必要があります。DLL ファイルをダウンロードするか、以下の NuGet インストール コマンドを使用します。

PM> NuGet\Install-Package Conholdate.Total

C# で PDF から透かしを削除する

PDF ドキュメントから透かしを削除するには、Watermarker クラスを使用します。この強力なツールを使用すると、ドキュメント内に存在する透かしを検索して削除できます。

  • PDF をロードします。まず、Watermarker クラスを使用して PDF ドキュメントをロードします。
  • 透かしの検索: 検索方法は、ドキュメント内に存在する可能性のある透かしを識別します。
  • 透かしを削除します。コードは、インデックスを指定する (RemoveAt(0)) か、透かしオブジェクトを直接渡す (Remove(possibleWatermarks[0])) ことで透かしを削除します。
  • ドキュメントを保存する: 最後に、透かしなしでドキュメントが保存されます。

以下は、C# を使用して PDF から透かしを削除する方法を示すコードです。

using (Watermarker watermarker = new Watermarker("document.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // ドキュメントから指定されたインデックスにある可能性のある透かしを削除します。
    possibleWatermarks.RemoveAt(0);

    // 指定された透かしをドキュメントから削除します。
    possibleWatermarks.Remove(possibleWatermarks[0]);

    watermarker.Save("document.pdf");
}

このアプローチは柔軟性があり、テキストや画像ベースの透かしなど、さまざまな種類の透かしを迅速かつ効率的に削除できます。

C# で PDF からハイパーリンクの透かしを削除する

一部の PDF ドキュメントには、クリック可能な URL で構成されるハイパーリンク透かしが含まれています。これらの透かしは、ハイパーリンクを具体的にターゲットにすることで削除できます。以下は、特定の URL パターンに基づいてハイパーリンク透かしを検索して削除する方法の例です。

  • ハイパーリンクの検索: このコードは、まず正規表現を含む TextSearchCriteria を使用して、指定された URL (例: “someurl.com”) に一致するハイパーリンクを検索します。
  • ハイパーリンクのフィルター: 識別された透かしがハイパーリンク (HyperlinkPossibleWatermark) であるかどうかを確認します。
  • ハイパーリンクの削除: ハイパーリンクの場合、コードはその URL をコンソールに出力し、ドキュメントからハイパーリンクを削除します。
  • ドキュメントを保存する: 更新された PDF ドキュメントはハイパーリンクの透かしなしで保存されます。
using (Watermarker watermarker = new Watermarker("document.pdf"))
{
    PossibleWatermarkCollection watermarks = watermarker.Search(new TextSearchCriteria(new Regex(@"someurl\.com")));
   for (int i = watermarks.Count - 1; i >= 0; i--)
    {
        // ハイパーリンクのみが削除されることを確認します。
        if (watermarks[i] is HyperlinkPossibleWatermark)
        {
            // ハイパーリンクの完全なURLを出力します
            Console.WriteLine(watermarks[i].Text);

            // 文書からハイパーリンクを削除する
            watermarks.RemoveAt(i);
        }
    }

    watermarker.Save("document.pdf");
}

この方法は、透かしとして URL を含むドキュメントをクリーンアップし、指定されたハイパーリンクの透かしのみが削除されるようにする必要がある場合に特に便利です。

無料評価ライセンス

無料の一時ライセンスを取得して、制限なくさまざまな機能を評価できます。

まとめ

一般的なテキストや画像ベースの透かし、あるいはより具体的なハイパーリンク透かしを扱う場合でも、API は強力で柔軟なソリューションを提供します。不要な透かしをすばやく識別して削除し、PDF をクリーンでプロフェッショナルなものにすることができます。プロセスはシンプルで、インデックスまたは URL パターンによって削除する透かしの種類を正確に制御できるため、ドキュメントをニーズに合わせてカスタマイズできます。不明な点がある場合は、フォーラム までお問い合わせください。

参照