Donnez vie à vos documents numériques !
 

Faire une barre de progression

abracadabraPDF Forums PDF – Général Faire une barre de progression

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45016
    rattlesnake
    Membre

    Bonjour à tous,
    Alors le titre peu sembler un peu bizarre pour du document PDF :D

    Je m’explique : J’ai un document un peu lourd à charger (Beaucoup de champs qui se remplissent au démarrage). Et du coup selon la rapidité de la machine qui lance le document, il peut y avoir entre 0.5 et 5 secondes de chargement.

    Du coup je me retrouve avec des utilisateurs Lambda qui n’attendent pas le chargement et me disent que le document ne fonctionne pas.

    Auriez vous connaissance d’un moyen d’ajouter un petit logo de chargement afin de faire patienter la personne ?

    Merci d’avance :)

Affichage de 11 réponses de 1 à 11 (sur un total de 11)
  • Auteur
    Réponses
  • #58026
    brumbies
    Membre

    Bonjour,

    Essaie ceci :

    Code:
    var t = app.thermometer;// Acquire a thermometer object
    t.duration = this.numPages;
    t.text = “Chargement en cours”;
    t.begin();

    //… place ton script permettant de remplir tes champs

    t.end();

    Dis moi si ca te va…

    :Smiley01:

    #58027
    Merlin
    Maître des clés

    Bonjour,

    @brumbies :  :bravo:

    @rattlesnake : Je me suis permis de modifier le titre du sujet. Je ne suis pas spécialement maniaque, c’est juste pour optimiser l’indexation par les moteurs de recherche.
    :geek:

    #58028
    rattlesnake
    Membre

    Wouaw merci infiniment brumbies !!!
    Ça va m’être très utile  :extra:

    Edit : Je suppose qu’il n’existe pas de fonction magique permettant de savoir si tous les champs ont fini de s’afficher dans le doc ? :D

    @Merlin : Très bonne idée de ta part concernant l’amélioration du titre pour le référencement :D

    #58029
    Merlin
    Maître des clés

    @Merlin : Très bonne idée de ta part concernant l’amélioration du titre pour le référencement

    Ce n’est pas “mon” idée.  :Smiley03:

    A l’origine c’est celle de Lionel, qui nous a quitté il y a tout juste un an : http://abracadabrapdf.net/forum/index.php/topic,2310.0.html
    :Smiley11:

    #58030
    brumbies
    Membre

    Bonjour,

    Ça va m’être très utile

    :Smiley03:

    Edit : Je suppose qu’il n’existe pas de fonction magique permettant de savoir si tous les champs ont fini de s’afficher dans le doc ?

    Je ne cerne pas bien l’utilité… car si tu utilises l’objet thermometre, le script compris à l’intérieur sera entièrement exécuté avant fermeture du thermomètre.
    Cependant, tu peux ajouter en bas de script un message d’alert app.alert(“xxx”); (ou d’info…) une fois l’ensemble de ton code exécuté (et donc que tes champs sont chargés).
    Sinon, tu peux également intégrer un compteur qui vient s’incrémenter de 1 à chaque fois q’un champs est chargé. Et en fin de script il suffira de contrôler que le nombre de champs chargés est = aux nombres de champs attendus…

    Je ne peux pas te donner plus de détails sans avoir un exemple succinct…

    :Smiley01:

    #58031
    Merlin
    Maître des clés

    Je suppose qu’il n’existe pas de fonction magique permettant de savoir si tous les champs ont fini de s’afficher dans le doc ?

    C’est ce que fait le script de brumbies, le thermomètre s’arrête quand c’est fini.
    Par-contre si c’est ce que tu veux dire, la durée réelle n’est pas prévisible ni prédictible. Il suffit de pas grand-chose pour ralentir un ordi (relève programmée des emails, tâche de fond qui se réveille, etc.).
    :Smiley01:

    #58032
    rattlesnake
    Membre

    Je ne cerne pas bien l’utilité… car si tu utilises l’objet thermometre, le script compris à l’intérieur sera entièrement exécuté avant fermeture du thermomètre.
    Cependant, tu peux ajouter en bas de script un message d’alert app.alert(“xxx”); (ou d’info…) une fois l’ensemble de ton code exécuté (et donc que tes champs sont chargés).
    Sinon, tu peux également intégrer un compteur qui vient s’incrémenter de 1 à chaque fois q’un champs est chargé. Et en fin de script il suffira de contrôler que le nombre de champs chargés est = aux nombres de champs attendus…

    Yep, le truc c’est que j’ai une myriade de champs et de petit scripts éparpillés par-ci par là. Je n’ai pas un seul script global qui gère ça  :mur:

    Il y a aussi autre chose, je n’ai pas acces à la partie “modifier tous les scripts du document” car il y a trop de code et l’editeur d’acrobat ne se lance pas.
    Et je ne peux pas non plus choisir de l’ouvrir avec un editeur externe type notepad ++ car cela me fait foirer mes var contenant de  l’arabe (nécessaire pour le client).

    L’idée d’incrémenter une var au fur et à mesure de la naissance des champs me parait pas mal !

    C’est ce que fait le script de brumbies, le thermomètre s’arrête quand c’est fini.
    Par-contre si c’est ce que tu veux dire, la durée réelle n’est pas prévisible ni prédictible. Il suffit de pas grand-chose pour ralentir un ordi (relève programmée des emails, tâche de fond qui se réveille, etc.).
    :Smiley01:

    C’est ce que je voulais savoir. Un code du genre :

    Code:
    var t = app.thermometer;// Acquire a thermometer object
    t.duration = this.numPages;
    t.text = “Chargement en cours”;
    t.begin();

    while ( documentIsLoading() )
      {
      // do nothing
      }

    t.end();

    M’aurais bien arrangé :)

    #58033
    Merlin
    Maître des clés

    le truc c’est que j’ai une myriade de champs et de petit scripts éparpillés par-ci par là. Je n’ai pas un seul script global qui gère ça

    Ah ben oui mais non.
    Mais du coup je soupçonne la réalité du problème : tu as plein de champs qui lancent tous peu ou prou le même script les uns après les autres ?
    Si oui, ce n’est pas un thermomètre qu’il faut, c’est les placer en fonction. Ainsi ça les chargera très vite.
    :idee:

    Un code du genre :

    M’aurais bien arrangé

    C’est un non négatif formel et sans appel.
    Il n’est pas possible qu’un JavaScript placé dans un document PDF puisse intervenir sur des processus système ou d’autres applications.
    Simple question de sécurité.
    :Smiley15:

    #58034
    rattlesnake
    Membre

    Pour les actions similaires, je fais appel à une fonction unique se trouvant dans : “Scripts javascripts du document” afin de limiter le nombre de script au max justement ;D .
    En soi je crois que le plus lourd à charger reste l’apparition des champs eux-même (des tableaux constitués par des champs texte). Le calcul qui s’applique se réalise plutôt rapidement.

    C’est pour ça que la méthode de brumbies consistant à incrémenter une var à l’apparition de chaque champs me parait sympa pour mesurer l’état d’avancement de construction du document :)

    Je vous remercie d’avoir pris le temps de vous pencher sur mon problème !

    Seb

    #58035
    Merlin
    Maître des clés

    C’est pour ça que la méthode de brumbies consistant à incrémenter une var à l’apparition de chaque champs me parait sympa pour mesurer l’état d’avancement de construction du document

    Oui, mais en même temps ça va la ralentir…
    :geek:

    #58036
    rattlesnake
    Membre

    Oui, mais en même temps ça va la ralentir…
    :geek:

    Oui c’est sûr ^^. Mais je pense que ça peut être la solution la moins pire dans le cas présent :D

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