Eliminar formularios de PDF en Java

Estos ejemplos eliminan recursos de Form de una página en lugar de solo cambiar los valores de los campos.

Eliminar todos los recursos de formulario de una página

Utilice este ejemplo cuando todos los recursos de formulario en una página seleccionada deban eliminarse en una sola operación.

  1. Abra el PDF de origen Document.
  2. Acceda al XFormCollection para la página objetivo.
  3. Elimine la colección y guarde el documento actualizado.
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());
    }
}

Eliminar recursos de formulario específicos

Utilice este ejemplo cuando sólo se deben eliminar recursos de formulario seleccionados, como Typewriter forms.

  1. Abra el PDF de origen Document.
  2. Acceda al XFormCollection para la página objetivo.
  3. Filtre los recursos XForm que desea eliminar y elimínelos de la colección.
  4. Guarde el PDF actualizado 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());
    }
}