Remover anexos de PDF em Java

Os anexos armazenados em um documento PDF podem ser removidos individualmente ou todos de uma vez através da coleção EmbeddedFiles.

Remover um único anexo

Use este exemplo quando um arquivo incorporado nomeado deve ser excluído do PDF.

  1. Abra o PDF de origem em um objeto Document.
  2. Exclua o anexo pela sua chave da coleção de arquivos incorporados.
  3. Salve o documento de saída atualizado.
public static void removeAttachment(Path inputFile, String attachmentName, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getEmbeddedFiles().deleteByKey(attachmentName);
        document.save(outputFile.toString());
    }
}

Remover todos os anexos

Use esta abordagem quando a coleção inteira de arquivos incorporados precisar ser limpa.

  1. Abra o PDF de origem em um objeto Document.
  2. Exclua todos os itens da coleção de arquivos incorporados.
  3. Salve o documento de saída limpo.
public static void removeAllAttachments(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getEmbeddedFiles().delete();
        document.save(outputFile.toString());
    }
}