在 Java 中删除 PDF 水印

在 Java 中删除 PDF 首页的水印伪迹。

删除水印伪迹

此示例仅删除第一页中类型为 Pagination、子类型为 Watermark 的工件。以普通页面文本、图像或注释形式保存的可见水印仍保留在 PDF 中。

  1. 使用 Document 打开源 PDF.
  2. 以相反顺序遍历页面工件集合。
  3. 删除子类型为 watermark 的分页工件,然后保存文档。
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());
    }
}

相关主题