JavaでPDFの透かしを削除

JavaでPDFの最初のページから透かしのアーティファクトを削除します。

透かしのアーティファクトを削除

この例では、最初のページから、タイプが Pagination でサブタイプが Watermark のアーティファクトだけを削除します。通常のページテキスト、画像、または注釈として保存されている透かしは、PDF に残ります。

  1. Document で元の PDF を開いてください。
  2. ページアーティファクトコレクションを逆順に反復処理してください。
  3. サブタイプがウォーターマークのページネーションアーティファクトを削除し、ドキュメントを保存してください。
public static void deleteWatermarkArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (int i = document.getPages().get_Item(1).getArtifacts().size(); i >= 1; i--) {
            Artifact artifact = document.getPages().get_Item(1).getArtifacts().get_Item(i);
            if (artifact.getType() == Artifact.ArtifactType.Pagination
                    && artifact.getSubtype() == Artifact.ArtifactSubtype.Watermark) {
                document.getPages().get_Item(1).getArtifacts().delete(artifact);
            }
        }

        document.save(outputFile.toString());
    }
}

関連トピック