Modification d'AcroForm

La maintenance des formulaires implique souvent à la fois des modifications au niveau des champs et le nettoyage des ressources de page liées au formulaire.

Texte clair dans les ressources de formulaire intégré

Utilisez cet exemple lorsque le contenu du formulaire Typewriter doit être vidé sans supprimer les objets du formulaire eux-mêmes.

  1. Ouvrez le PDF source Document.
  2. Parcourez les ressources de formulaires de page et localisez les formulaires Typewriter.
  3. Effacez les fragments de texte absorbés et enregistrez le document.
public static void clearTextInForm(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (XForm form : document.getPages().get_Item(1).getResources().getForms()) {
            if ("Typewriter".equals(form.getIT()) && "Form".equals(form.getSubtype())) {
                TextFragmentAbsorber absorber = new TextFragmentAbsorber();
                absorber.visit(form);

                for (TextFragment fragment : absorber.getTextFragments()) {
                    fragment.setText("");
                }
            }
        }
        document.save(outputFile.toString());
    }
}

Définir une limite de longueur de champ de texte

Utilisez cet exemple lorsqu’un champ de texte ne doit accepter qu’un nombre limité de caractères.

  1. Créez une façade FormEditor et liez le PDF source.
  2. Définissez la longueur maximale du champ cible.
  3. Enregistrez le document mis à jour.
public static void setFieldLimit(Path inputFile, Path outputFile) {
    FormEditor form = new FormEditor();
    form.bindPdf(inputFile.toString());
    try {
        form.setFieldLimit("First Name", 15);
        form.save(outputFile.toString());
    } finally {
        form.close();
    }
}

Obtenir une limite de longueur de champ de texte

Utilisez cet exemple lorsque vous devez inspecter la longueur maximale actuelle d’un champ de texte.

  1. Ouvrez le PDF source Document.
  2. Accédez au champ cible à partir de la collection de formulaires.
  3. Lisez la limite de TextBoxField et affichez-la.
public static void getFieldLimit(Path inputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Field field = document.getForm().getFields()[0];
        if (field instanceof TextBoxField textBoxField) {
            System.out.println("Limit: " + textBoxField.getMaxLen());
        }
    }
}

Changer la police d’un champ de formulaire

Utilisez cet exemple lorsqu’un champ de texte existant doit utiliser une police ou une apparence différente.

  1. Ouvrez le PDF source Document.
  2. Accédez à la cible TextBoxField et définissez une nouvelle apparence par défaut.
  3. Enregistrez le PDF mis à jour.
public static void setFormFieldFont(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Field field = document.getForm().getFields()[0];
        if (field instanceof TextBoxField textBoxField) {
            textBoxField.setDefaultAppearance(new DefaultAppearance(
                    FontRepository.findFont("Calibri"), 10, com.aspose.pdf.Color.getBlack().toRgb()));
        }

        document.save(outputFile.toString());
    }
}

Supprimer un champ de formulaire par son nom

Utilisez cet exemple lorsqu’un champ spécifique doit être supprimé de l’AcroForm.

  1. Ouvrez le PDF source Document.
  2. Supprimez le champ cible du formulaire par son nom.
  3. Enregistrez le document mis à jour.
public static void deleteFormField(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getForm().delete("First Name");
        document.save(outputFile.toString());
    }
}