Удаление водяных знаков из PDF на Java

Удалить артефакты водяных знаков с первой страницы PDF в Java.

Удаление артефактов водяных знаков

Пример удаляет с первой страницы только артефакты типа Pagination и подтипа Watermark. Видимые водяные знаки, сохранённые в виде обычного текста страницы, изображений или аннотаций, остаются в PDF.

  1. Откройте исходный PDF в объекте Document.
  2. Переберите коллекцию артефактов страницы в обратном порядке.
  3. Удалите артефакты нумерации, подтип которых соответствует водяному знаку.
  4. Сохраните документ.
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());
    }
}

См. также