Forum abracadabraPDF.net

Thèmes de discussion du forum abracadabraPDF.net => PDF - Général => Discussion démarrée par: passifacile le 30 juin 2021 : 13:31

Titre: Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: passifacile le 30 juin 2021 : 13:31




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.
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: Merlin le 30 juin 2021 : 23:54
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.
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: bebarth le 01 juillet 2021 : 11:37
bonjour,
J'ai une idée que je dois transcrire, mais peut être pas avant ce weekend !
@+
 :bonjour:
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: passifacile le 01 juillet 2021 : 23:09
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é.
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: bebarth le 09 juillet 2021 : 20:48
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:
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: passifacile le 10 juillet 2021 : 11:03
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.
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: Merlin le 11 juillet 2021 : 10:28
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:
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: passifacile le 12 juillet 2021 : 13:42
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...

Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: Merlin le 12 juillet 2021 : 19:32
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.
Titre: Re : Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: bebarth le 14 juillet 2021 : 23:38
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:
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: Merlin le 15 juillet 2021 : 10:10
Waou !
 :bravo:
Titre: Re : Compter des lignes dans un champ multignes sans caractères de retour à la ligne
Posté par: passifacile le 17 juillet 2021 : 21:47


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.