Projet

Général

Profil

Bug #75373

pdf: implémenter le remplissage des champs de type comboxbox et liste

Ajouté par Thomas Noël il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
13 mars 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

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

cerfa_14011-02.pdf (695 ko) cerfa_14011-02.pdf Thomas Noël, 13 mars 2023 14:25

Demandes liées

Lié à Passerelle - Development #75015: pdf: implémenter le remplissage des champs de type comboxbox et listeFermé02 mars 2023

Actions

Révisions associées

Révision 11dcc6c2 (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

utils.pdf: refactor Widget class (#75373)

Révision 52356c98 (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

pdf: add support for radio buttons (#75373)

Révision d882fc8e (diff)
Ajouté par Benjamin Dauvergne il y a environ un an

pdf: add support for combo fields (#75373)

Historique

#1

Mis à jour par Thomas Noël il y a environ un an

  • Statut changé de Nouveau à Rejeté
pdftk n'arrive même pas à trouver les noms des champs correspondant, on ne voit que
  • 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).

#2

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.

#3

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
#4

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 :

#5

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.

#6

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é
#7

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
#8

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée
#9

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 :

#10

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 :

#11

Mis à jour par Transition automatique il y a environ un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#13

Mis à jour par Transition automatique il y a 11 mois

Automatic expiration

Formats disponibles : Atom PDF