Donnez vie à vos documents numériques !
 

Comptage de mots avec AbracadabraTOOLS – RÉSOLU

abracadabraPDF Forums PDF – Général Comptage de mots avec AbracadabraTOOLS – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43827
    bebarth
    Maître des clés

    Bonjour à tous et à Merlin en particulier qui est l’auteur d’AbracadabraTOOLS
    je cherche à connaitre approximativement le nombre de mots inclus dans un gros document pdf (catalogue 1388 pages) pour estimer le devis pour une traduction.
    J’ai utilisé le compteur de mots d’AbracadabraTOOLS qui m’en trouve 710482. J’aimerais savoir ce que compte ce compteur de mots. Je suppose qu’il ne fait pas de distinction entre mots et nombres (il y a pas mal de tableaux dans ce catalogue).
    Existerait-il une solution pour compter uniquement les mots ???
    Merci d’avance
    :???:

    [attachment deleted by admin]

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #50990
    alex
    Participant

    Un petit script est nécessaire, je vais vous le proposer dans la journée. Sur le principe on a déjà la procédure de comptage des mots utilisée par Merlin  et il suffit de s’assurer que chaque mot ne contienne pas de chiffre (pas de codes ASCII de 48 (code ASCII de 0), jusqu’à 57 (code ASCII de 9).
    A tout de suite…

    #50991
    alex
    Participant

    Ci-dessous le script à placer dans le répertoire de l’application Acrobat ou Adobe Reader (créer un fichier CompterLesMotsSeuls.js)
    Ce script procède à deux comptages et visualise les résultats pour chaque page, puis les totaux pour l’ensemble des pages dans la console.
    Pour le lancer…
    Menu Outils>Outils Abracadabra>Compter les mots…

    //Script à copier et à placer dans le répertoire JavaScript d’Acrobat ou Adobe Reader
    //Adaptation à faire pour intégration à AbracadabraTool (Merlin)
    function comptageMots()
    {
    console.clear();
    console.show();
    //Compteurs
    TotalMots=0;
    TotalMotsAnalyses=0;
    console.println(“Estimation du nombre des mots sur “+this.numPages+” pages.”)
    page=0;
    while(page {
    pp=page+1;
    //Détection du nombre des mots de la page
    nbreMotsAnalyses=this.getPageNumWords(page);
    console.println(“Calcul sur les “+nbreMotsAnalyses+” mots de la page “+pp)
    indexMot=0;
    nbreMots=0;
      while (indexMot   {
      //Analyse de chaque mot
      Mot=this.getPageNthWord(page,indexMot,0);
      indexcar=0;
      detectionchiffre=false;
      while(indexcar   {
      //Un des caractères est-il un chiffre?
      if(Mot.charCodeAt(indexcar)>=48&Mot.charCodeAt(indexcar)   indexcar=indexcar+1;
      }
      if(!detectionchiffre){nbreMots=nbreMots+1;}
      indexMot=indexMot+1;
      }
    console.println(“Fin du calcul pour la page “+pp+” avec “+nbreMots+” / “+nbreMotsAnalyses)
    TotalMots=TotalMots+nbreMots;
    TotalMotsAnalyses=TotalMotsAnalyses+nbreMotsAnalyses;
    page=page+1;
    }
    console.println(“************************************************************************”);
    console.println(“Fin du calcul pour “+this.numPages+” avec “+TotalMots+” / “+TotalMotsAnalyses);
    console.println(“************************************************************************”);
    }
    //Programme init
    //A. Noesser
    //Placer le nouvel item
    app.addSubMenu({
    cName: “Outils Abracadabra”,
    cParent: “Tools”,
    nPos: 0 })
    app.addMenuItem({
    cName: “Compter les mots, exclure les chiffres…”,
    cParent: “Outils Abracadabra”,
    cExec:”comptageMots()”,
    cEnable: “event.rc = (event.target != null);”,
    nPos: 0})

    #50992
    alex
    Participant

    Dans cette variante, seul le résultat global s’affiche dans une alerte classique.

    //Variante
    //Script à copier et à placer dans le répertoire JavaScript d’Acrobat
    //Adaptation à faire pour intégration à AbracadabraTool (Merlin)
    function comptageMots()
    {
    console.clear();
    //console.show();
    //Compteurs
    TotalMots=0;
    TotalMotsAnalyses=0;
    console.println(“Estimation du nombre des mots sur “+this.numPages+” pages.”);
    if(this.numPages>99)
    {
    app.alert({
    cTitle:”AbracadabraTool”,
    cMsg:”Avertissement:rLe temps de calcul sera de quelques dizaines de secondes…”+
    “rNombre de pages : “+this.numPages,
    nIcon:1}
    );
    }
    page=0;
    while(page {
    pp=page+1;
    //Détection du nombre des mots de la page
    nbreMotsAnalyses=this.getPageNumWords(page);
    console.println(“Calcul sur les “+nbreMotsAnalyses+” mots de la page “+pp)
    indexMot=0;
    nbreMots=0;
      while (indexMot   {
      //Analyse de chaque mot
      Mot=this.getPageNthWord(page,indexMot,0);
      indexcar=0;
      detectionchiffre=false;
      while(indexcar   {
      //Un des caractères est-il un chiffre?
      if(Mot.charCodeAt(indexcar)>=48&Mot.charCodeAt(indexcar)   indexcar=indexcar+1;
      }
      if(!detectionchiffre){nbreMots=nbreMots+1;}
      indexMot=indexMot+1;
      }
    console.println(“Fin du calcul pour la page “+pp+” avec “+nbreMots+” / “+nbreMotsAnalyses)
    TotalMots=TotalMots+nbreMots;
    TotalMotsAnalyses=TotalMotsAnalyses+nbreMotsAnalyses;
    page=page+1;
    }
    console.println(“************************************************************************”);
    console.println(“Bilan pour “+this.numPages+” pages avec “+TotalMots+” / “+TotalMotsAnalyses);
    console.println(“************************************************************************”);
    TotalMotsChiffres=TotalMotsAnalyses-TotalMots;
    app.alert({
    cTitle:”AbracadabraTool”,
    cMsg:”Nombre de mots sans chiffres: “+TotalMots+
    “rNombre de mots contenant des chiffres : “+TotalMotsChiffres+
    “rTotal nombre de mots : “+TotalMotsAnalyses+
    “rNombre de pages : “+this.numPages,
    nIcon:3}
    );
    }
    //Programme init
    //A. Noesser
    //Placer le nouvel item
    app.addSubMenu({
    cName: “Outils Abracadabra”,
    cParent: “Tools”,
    nPos: 0 })
    app.addMenuItem({
    cName: “Compter les mots, exclure les chiffres…”,
    cParent: “Outils Abracadabra”,
    cExec:”comptageMots()”,
    cEnable: “event.rc = (event.target != null);”,
    nPos: 0})

    #50993
    bebarth
    Maître des clés

    Merci beaucoup à Alex pour ces réponses très rapides.
    Du coup c’est moi qui suis confus de ne pas avoir trouvé le temps de re-venir voir sur le forum avant.
    Ces scripts me conviennent à merveille…. ça donne une idée plus précise de la quantité de mots à prendre en compte pour mon devis de traduction.
    Merci encore
    :contentdance:
    bebarth

    [attachment deleted by admin]

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