Excluir formulários de PDF em Java

Esses exemplos removem recursos de formulário de uma página, em vez de apenas alterar valores de campo.

Remover todos os recursos de formulário de uma página

Use este exemplo quando todos os recursos de formulário em uma página selecionada devem ser removidos em uma única operação.

  1. Abra o PDF de origem em um objeto Document.
  2. Acesse o XFormCollection para a página de destino.
  3. Limpe a coleção e salve o documento atualizado.
public static void removeAllForms(Path inputFile, int pageNum, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        XFormCollection forms = document.getPages().get_Item(pageNum).getResources().getForms();
        forms.clear();
        document.save(outputFile.toString());
    }
}

Remover recursos de Form específicos

Use este exemplo quando apenas recursos de Form selecionados, como Typewriter forms, devem ser excluídos.

  1. Abra o PDF de origem em um objeto Document.
  2. Acesse o XFormCollection para a página de destino.
  3. Filtre o XForm recursos que você deseja remover e excluí-los da coleção.
  4. Salve o PDF atualizado Document.
public static void removeSpecifiedForm(Path inputFile, int pageNum, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        XFormCollection forms = document.getPages().get_Item(pageNum).getResources().getForms();
        List<String> formNames = new ArrayList<>();
        for (XForm form : forms) {
            if ("Typewriter".equals(form.getIT()) && "Form".equals(form.getSubtype())) {
                formNames.add(forms.getFormName(form));
            }
        }
        for (String formName : formNames) {
            forms.delete(formName);
        }
        document.save(outputFile.toString());
    }
}