Donnez vie à vos documents numériques !
 

Compter des lignes dans un champ multignes sans caractères de retour à la ligne

abracadabraPDF Forums PDF – Général Compter des lignes dans un champ multignes sans caractères de retour à la ligne

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46629
    passifacile
    Participant

    Bonjour à toutes et à tous.

    Je cherchais à compter les lignes d’un champ multilignes dont le texte (font différente de courrier, bien entendu) ne contient pas forcément de retours à la ligne (trèèèèèès long paragraphe).

    Par exemple : si je tape 5000 caractères au kilomètre dans un champ, ce dernier renvoie naturellement le texte à la ligne pour en permettre l’affichage.
    En visuel, j’ai donc beaucoup de lignes, mais, techniquement, une seule.

    Mes recherches ne m’ont pas permis d’entrevoir une solution.

    Alors je me suis tourné vers un autre approche pour arriver au résultat : j’ai cherché un moyen de détecter
    un champ (multilignes + scroll) lorsque le contenu provoque l’affichage de l’ascenseur, ou
    un champ (multilignes sans scroll) lorsque le contenu provoque l’affichage du petit “+” en bas, à droite.

    Dit autrement, y a-t-il un moyen de détecter un champ dont le contenu excède la capacité d’affichage due à la taille définie ?

    merci par avance pour vos idées, suggestions ou renvois à toutes références utiles.

Affichage de 11 réponses de 1 à 11 (sur un total de 11)
  • Auteur
    Réponses
  • #69406
    Merlin
    Maître des clés

    Bonjour

    Je crois que l’utilisation de l’évènement fieldFull est ta seule planche de salut :
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/event_properties.htm?rhhlterm=fieldFull&rhsyns=%20#XREF_98939_fieldFull

    Il y a deux exemples intéressants.

    #69407
    bebarth
    Maître des clés

    bonjour,
    J’ai une idée que je dois transcrire, mais peut être pas avant ce weekend !
    @+
    :bonjour:

    #69408
    passifacile
    Participant

    Merci, Merlin : je ne l’avais pas vue, cette fonction.

    La restriction « Only available in keystroke events for text fields » va cependant me poser un problème, car je dois pouvoir tester hors saisie.

    Merci Bebarth : s’il y avait une solution, ce serait top.

    Au pire, je me demande si je ne vais pas passer à une police à chasse fixe. Le calcul sera alors aisé.

    #69409
    bebarth
    Maître des clés

    bonsoir,
    Mon idée ne fonctionne pas très bien… du coup pas du tout ! Je persiste un peu sans grande conviction car avec fieldFull qui ne marche qu’en script de touche ce n’est pas si facile… ;-)
    @+
    :bonjour:

    #69410
    passifacile
    Participant

    Bonjour, Bebarth.

    Veu meu fui caffé les dents deffu… :mur: :geek:

    A moins de pouvoir simuler un script de touche avec un script de document, je crains que ce ne soit effectivement pas possible.
    Je garde encore de côté la cartouche “police Courrier”… en fondant malgré tout de gros espoirs sur l’apparition d’une solution miracle dont je serai reconnaissant pour l’éternité !

    Merci et à bientôt.

    #69411
    Merlin
    Maître des clés

    On pourrait peut être inverser la problématique.
    Je ne sais pas pourquoi tu veux savoir si le contenu d’un champ texte “déborde”, mais si tu interdisais le débordement des champs tu n’aurais pas ce problème…
    :idee:

    #69412
    passifacile
    Participant

    Bonjour, Merlin.

    Je voudrais pouvoir offrir le plus de souplesse possible à l’utilisateur lors de la saisie des données, et éviter de formater des documents “fixes” imprimés qui contiendraient des champs (remplis ou non) de même format, au risque de générer inutilement des pages entières s’ils ne l’étaient pas.

    Peu de données saisie dans un champ dédié, alors spawn d’une page contenant un “petit champ”, beaucoup, beaucoup de données saisies dans ce champ, alors spawn de n pages avec des champs dans lesquels seraient reportées et réparties les données du champ unique de saisie.

    Je cherche en fait à générer (sans script “usine à gaz”), un document le plus naturel possible (comme s’il était composé dans Word), sans “trous” alors que les données saisies proviennent de nombreux champs.

    La détection de l’overflow m’aurait permis de jongler avec différents champs de différentes tailles, répartis sur différentes pages…

    #69413
    Merlin
    Maître des clés

    Le document ci-joint devrait t’intéresser, c’est un modèle de fax à deux pages.
    Quand la saisie déborde du premier champ sur la première page le texte passe automatiquement dans la deuxième.
    Même chose si on copie-colle un texte trop long, la partie débordante est placée dans la deuxième page.

    #69414
    bebarth
    Maître des clés

    bonsoir,

    Je crois que l’utilisation de l’évènement fieldFull est ta seule planche de salut :

    Une idée étincelante en ce 14 juillet, sans préjugé…
    Je vous laisse découvrir !
    Je vous invite à modifier la largeur du champ (ou le corps du texte). Seul le nombre de lignes change.
    (Ah) Ça ira… ?
    L’action est en pièce jointe du document.
    @+
    :bonjour:

    #69415
    Merlin
    Maître des clés

    Waou !
    :bravo:

    #69416
    passifacile
    Participant

    Bonsoir, Bebarth, merci pour la réponse époustouflante  et… bravo.
    :bravo: :bravo: :bravo: :bravo:

    Pour pouvoir utiliser le code avec un script de document (ou de bouton), j’ai d’abord créé un template que j’ouvre au lieu de créer une nouvelle page.
    Puis, j’ai créé un script d’application pour la fonction flattenPages, afin de pouvoir l’utiliser avec Reader (c’est impératif, pour moi), mais c’est interdit avec Reader.
    :mur:

    A moins de pouvoir copier et créer par script le texte directement dans une page et dans les mêmes dimensions que celles du champ, c’est cuit pour moi.

    Je vais donc devoir trouver une autre solution et, surtout, garder précieusement ton exemple.
    @ Merlin : merci beaucoup pour le fichier. Je vais m’en inspirer pour trouver une solution à mon problème.

    Bon week-end à tous.

Affichage de 11 réponses de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.