Bug #75373
pdf: implémenter le remplissage des champs de type comboxbox et liste
0%
Description
Sur un "fill-form" avec le cerfa 14011*02 Déclaration de perte de carte identité https://www.formulaires.service-public.fr/gf/showFormulaireSignaletiqueConsulter.do?numCerfa=14011 (ci joint)
Sur la page de correspondance de champs, les champs case à cocher 'PERSONNE MAJEURE' et 'PERSONNE MINEURE' en haut de page ne sont pas accessibles, ainsi que "Homme" et "Femme" dans la partie "Déclarant".
Fichiers
Demandes liées
Révisions associées
pdf: add support for radio buttons (#75373)
pdf: add support for combo fields (#75373)
Historique
Mis à jour par Thomas Noël il y a environ un an
- Statut changé de Nouveau à Rejeté
- topmostSubform0.Page10.Groupe_de_boutons_radio0 pour PERSONNE MAJEURE PERSONNE MINEURE
- topmostSubform0.Page10.Gender0 pour "Homme" et "Femme"
Le PDF contient beaucoup de javascript pour la gestion des champs. Seul les afficheurs puissants/modernes (acrobat ou lecteur JS dans les navigateurs) parviennent à faire un rendu correct du formulaire. xpdf ou evince n'y parviennent pas, pdftk ou pdfrw encore moins.
On ne pourra pas gérer des formulaires PDF formatés de cette façon avec les possibilités actuelles de gestion des PDF que nous utilisons (pdfrw).
Mis à jour par Benjamin Dauvergne il y a environ un an
Ils ont juste par l'air nommés les champs mais je pense qu'on peut arriver à les traiter parce que c'est des champs normaux, à part l'absence de nom.
Mis à jour par Benjamin Dauvergne il y a environ un an
- Statut changé de Rejeté à En cours
Ok c'est plus compliqué, le champ est présent dans le dico des champs à la racine mais pas dans la page, mais heureusement on peut retrouver la page via un attribut. De plus le champs est de type radio, le type qu'on ne gère pas.
In [104]: pdfreader.Root.AcroForm.Fields[0].Kids[0].Kids[3].Kids[1].AP.N.keys() Out[104]: ['/H'] <-- valeur de la checkbox homme In [105]: pdfreader.Root.AcroForm.Fields[0].Kids[0].Kids[3].Kids[0].AP.N.keys() Out[105]: ['/F'] <-- idem femme In [106]: pdfreader.Root.AcroForm.Fields[0].Kids[0].Kids[3].T Out[106]: '(Gender[0])' In [108]: id(pdfreader.Root.AcroForm.Fields[0].Kids[0].Kids[3].Kids[0].P), id(pdfreader.pages[0]) Out[108]: (140161892302192, 140161892302192) <-- on peut retrouver la bonne page en comparant l'id de l'attribut /P In [109]: format(int(pdfreader.Root.AcroForm.Fields[0].Kids[0].Kids[3].Ff), 'b') Out[109]: '1100000000000000'
Les bits 15 et 16 sont valués, d'après le standard (https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.2.pdf page 123) ça indique bien un champ radio avec les checkbox correspondantes dans /Kids et le bit 15 c'est un truc obscur d'IHM dont on se fout.
bit 16 Radio flag. If this flag is true (i.e., if this bit is 1), then the Btn field is a radio button; otherwise it is a checkbox. This flag is meaningful only if the push-button flag is false. bit 15 “No toggle to Off” flag. If this bit is 1, then selecting the checkbox that is in the on state leaves it in that state, rather than toggling it to off; in effect, the checkbox is “re-selected.” If this bit is 0, the checkbox that is currently in the on state can be set to off even if no other checkbox enters the on state
Mis à jour par Robot Gitea il y a environ un an
- Assigné à mis à Benjamin Dauvergne
Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/138
- Titre : WIP: pdf: support des boutons radio
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/138/files
Mis à jour par Benjamin Dauvergne il y a environ un an
En fait les champs sont bien dans Annots mais c'est plus compliqué, il faut regarder le parent pour trouver le nom les fils étant les différentes checkbox liés au widget virtuel "radio", mais les fils sont les seuls à être attachés à la page directement, parce que c'est ce qui est visible. J'en profite pour ajouter le support des combo aussi, mais les combos ne marchent pas avec l'option flatten pour ce formulaire.
Mis à jour par Benjamin Dauvergne il y a environ un an
- Lié à Development #75015: pdf: implémenter le remplissage des champs de type comboxbox et liste ajouté
Mis à jour par Benjamin Dauvergne il y a environ un an
- Sujet changé de pdf : champs du PDF inaccessibles dans l'édition des correspondances à pdf: implémenter le remplissage des champs de type comboxbox et liste
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution proposée à Solution validée
Thomas NOËL (tnoel) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution validée à Résolu (à déployer)
Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/138
- Titre : pdf: support des boutons radio et des listes à choix (#75373)
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/138/files
Mis à jour par Transition automatique il y a environ un an
- Statut changé de Résolu (à déployer) à Solution déployée
utils.pdf: refactor Widget class (#75373)