PDF-Cleaner — PDFの水印除去ツール

Tool

概要

PDF-Cleaner は、PDF に埋め込まれた水印(テキストや画像の透かし、重なったスタンプ等)を除去することを目的としたツールセットです。元の PDF-Watermark-Removal プロジェクトを改変・拡張しており、特に app.py 単体では除去できないタイプの水印に対して、clean.py を追加して対応力を強化しています。処理はコード実行による利用が前提で、PyMuPDF(fitz)でページ内容を読み取り、OpenCV を用いた画像処理で水印検出・マスク化・復元を行う流れが中心です。GUI 風の HTML ファイルも同梱され、試験用のPDFサンプルも含まれています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 4
  • ファイル数: 17
  • メインの言語: Python

主な特徴

  • app.py ベースの既存手法を継承しつつ、clean.py で特殊な水印パターンを追加処理可能
  • PyMuPDF (fitz) によるページ解析と OpenCV による画像処理を組み合わせたハイブリッド方式
  • コード実行ベースでの利用を想定し、UI 用の HTML ファイルも同梱している
  • サンプルPDFが含まれており、簡易的な動作確認が行える

技術的なポイント

本プロジェクトは PDF の構造解析と画像処理を組み合わせて水印除去を行う点が特徴です。一般的に PDF 内の水印はテキストオブジェクト、ベクトル描画、埋め込み画像、あるいは透明度(アルファ)を伴うオーバーレイのいずれかで表現されるため、単一手法では全てに対処できません。そこで PyMuPDF(fitz)を使ってページのテキスト、画像、描画オブジェクトを抽出・操作し、OpenCV を用いてピクセルレベルでの検出/マスク生成/補間(inpainting)などの処理を施すハイブリッドなアプローチが採られています。

リポジトリ上では元の app.py がベース処理を担い、一般的な重ね合わせ水印や明瞭な画像水印の除去を行いますが、より厄介なケース(半透明のロゴ、複雑に重なったワードスタンプ、ページのレイアウトと類似したパターン等)に対しては clean.py を使って追加処理を行います。clean.py はコマンドラインやスクリプトから直接呼び出すことを想定しており、特定パターンの検出条件(閾値、テンプレート、マスク生成ロジック)を強化することで除去成功率を上げる設計になっていると考えられます。

実用上の注意点としては、PDF の内容や水印の種類によっては完全な復元が困難であり、背景のテクスチャや細かい図版がある場合は修復痕が残る可能性があります。また、ライブラリ依存として OpenCV(opencv-python)と PyMuPDF(fitz / PyMuPDF)が必要で、環境やバージョンによる挙動差があり得ます。README ではこれらのライブラリのインストールが案内されています。さらに、法的な面からも著作権や利用規約に注意して使用する必要があります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • A PIMSLEUR_FRENCH_1_TIENG_PHAP_BINH_DI.pdf: file
  • LICENSE: file
  • README.md: file
  • UI.html: file
  • UI1.html: file

…他 12 ファイル

まとめ

既存プロジェクトを拡張し、特定タイプの水印除去に対応した実験的なツールセット。用途は限定的だが実用性は高い。

リポジトリ情報:

READMEの抜粋:

PDF-Cleaner

PDF去水印工具

此项目基于 PDF-Watermark-Removal 修改。 针对 app.py 无法去除的水印类型,我添加了 clean.py 脚本用于处理特定类型的水印(仅支持代码调用),更加强力有效。

This project is based on PDF-Watermark-Removal I added the clean.py script to handle specific types of watermarks that app.py cannot remove (supports code execution only).

以下说明来自 PDF-Watermark-Removal 原readme,

需要的库:

pip install opencv-python

pip install fitz …