Donnez vie à vos documents numériques !
 

Mesurer le taux de remplissage des pages. – RÉPONDU

abracadabraPDF Forums PDF – Général Mesurer le taux de remplissage des pages. – RÉPONDU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43672
    skywalker
    Invité

    Bonjour,

    Quelqu’un connait-il un logiciel ou une méthode pour mesurer le taux de remplissage des pages (dans un fichier pdf par ex.) ?

    Merci.

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

    Qu’entend tu exactement par « taux de remplissage » ?
    Un ratio de surface utilisée ?
    :???:

    #49905
    skywalker
    Invité

    Exactement cela. Calculer un % de surface utilisée par l’encre (noir dans mon cas).
    Les toners sont vendus pour X pages avec un taux de Y% par ex.
    Cela veut dire que si mon taux de remplissage = Y/2 alors j’imprimerais X*2 pages (en gros …)

    #49906
    Merlin
    Maître des clés

    Je n’ai pas vraiment de réponse… Peut être que les fonctions de statistique de Photoshop Extended pourraient faire l’affaire ?

    :???: :doute:

    #49907
    alex
    Membre

    En JavaScript on peut pour chaque mot calculer l’aire occupée à partir des coordonnées du « Quad » (getPageNthWordQuads()). En faisant la somme des aires occupées par les mots et en la comparant à l’aire des pages on a sans doute une première approche de votre problème si on connaît le ratio d’occupation des lettres . Qu’en pensez_vous ?

    #49908
    Merlin
    Maître des clés

    Waow !

    Et qu’est ce que ça donnerait en JavaScript ?

    :D

    #49909
    alex
    Membre

    Je vous ai préparé quelque chose dans l’esprit de ce que j’ai proposé. Hélas l’exécution est un peu lente, aussi je m’accorde un jour de délai. Ce sera un script à placer dans le dossier JavaScript d’Acrobat (sur Pc ou sur Mac, Merlin précisera la procédure…)

    A demain.

    #49910
    Merlin
    Maître des clés

    A demain, je suis impatient !

    ;)

    #49911
    alex
    Membre

    Vous recopiez tout ça et l’enregistrez dans un fichier baptisé scriptabracadabra.js que vous enregistrez dans le répertoire JavaScript de l’application Acrobat (7,8 ou 9) sur Pc ou sur Mac (Cliquer sur l’application avec Ctrl Afficher le contenu du paquet>Contents>MacOS>JavaScripts )
    Au redémarrage on mesure le taux d’encrage de la page avec les réserves que j’ai déjà formulées. Menu Outils>Outils Abracadabra>Estimer l’encrage
    C’est un peu lent et limité à une page. Mais c’est une première approche..

    //Script à copier.
    function encrage()
    {
    console.clear();
    console.show();
    //Aire de la page
    pp=this.pageNum+1;
    console.println(« Calcul pour la page « +pp)
    rectpage=new Array();
    rectpage=this.getPageBox(« Crop »,0);
    airePage=Math.round(rectpage[1]*rectpage[2]);
    Echelle=21/rectpage[2];
    ll=Math.round(10*rectpage[1]*Echelle)/10;
    hh=Math.round(10*rectpage[2]*Echelle)/10;
    console.println(« Le calcul prend un certain temps. Merci. »)
    console.println(« Largeur page= »+ll+ » cm »)
    console.println(« Hauteur page= »+hh+ » cm »)
    //Aire des mots
    index=0;
    aireencree=0;
    nbreMots=this.getPageNumWords(this.pageNum);
      while (index  {
      rectmot=this.getPageNthWordQuads(this.pageNum,index);
      //Hélas rectmot n’est pas donné sous forme d’une table !
      rectmotstr=new String(rectmot);
      pointeur=0;
      chaine= » »;
        while(pointeur    {
        chaine=chaine+rectmotstr[pointeur];
        pointeur=pointeur+1;
        }
      xy=new Array();
      val=new Array();
      xy[0]=0;
      pointeur=0;
      pos=0;
        while(pointeur    {
          if(chaine.substring(pointeur,(pointeur+1))== », »)
          {
          pos=pos+1;
          val[pos]=chaine.substring(pointeur,xy[pos-1]);
          xy[pos]=pointeur+1;
          }
        pointeur=pointeur+1;
        }
      //Tout ça pour calculer les côtés du rectangle !
      largeurQ=val[3]-val[1];
      hauteurQ=val[2]-val[6];
      airemot=largeurQ*hauteurQ;
      aireencree=aireencree+airemot;
      index=index+1;
      }
    ratio=Math.round(100*(aireencree/airePage))/100;
    console.println(« Aire encrée= »+ Math.round(aireencree*Echelle*Echelle)+ »cm2. »);
    console.println(« Aire disponible= »+ Math.round(airePage*Echelle*Echelle)+ »cm2. »);
    console.println(« Soit un ratio de « +ratio)
    console.println(« Fin du calcul pour la page « +pp)
    }
    //Programme init
    //A. Noesser
    //Placer le nouvel item
    app.addSubMenu({
    cName: « Outils Abracadabra »,
    cParent: « Tools »,
    nPos: 0 })
    app.addMenuItem({
    cName: « Estimer l’encrage »,
    cParent: « Outils Abracadabra »,
    cExec: »encrage() »,
    cEnable: « true »,
    nPos: 0})

    #49912
    Merlin
    Maître des clés

    Alex : c’est superbe, quel talent !

    Il y a juste un petit hic : le (sous-)menu ne s’affiche pas dans Acrobat, je n’y arrive pas…
    Ca fait 2 heures que je bidouille sans résultat et que je tourne en rond : il y a certainement un truc de base qui m’échappe, mais là je ne vois pas.

    Au secours, je sèche…

    :Euuuh: :doute: :???:

    #49913
    alex
    Membre

    Sans doute un problème lié aux caractères spéciaux sur Mac ?
    Remplace la dernière partie par ceci (la création du sous_menu)

    //Placer le nouvel item
    app.addSubMenu({
    cName: « Outils_Abracadabra »,
    cParent: « Tools »,
    nPos: 0 })
    app.addMenuItem({
    cName: « Estimer_encrage »,
    cParent: « Outils_Abracadabra »,
    cExec: »encrage() »,
    cEnable: « true »,
    nPos: 0})

    Je vais essayer sur mon MacBook !

    #49914
    Merlin
    Maître des clés

    Je dois passer 5 heures dans le train cet aprème, j’aurais tout le temps de tester !

    :contentdance:

    #49915
    alex
    Membre

    Je viens d’essayer sur mon MacBook, ça marche avec ce script. J’ai une petite erreur à corriger (lancement de cette commande sans document ouvert).
    Pour un usage intensif il faut prévoir d’analyser une collection de pages ou un document en entier avec un script plus rapide…
    Amicalement.

    #49916
    Merlin
    Maître des clés

    Oui, il faut modifier « cEnable » ainsi:

    cEnable: « event.rc = (event.target != null); » // active only if a doc is opened

    ;)

    #49917
    alex
    Membre

    Oui, absolument.

    #49918
    Merlin
    Maître des clés

    Ca y est, j’y suis arrivé !

    En fait c’est un test avec Acrobat 8 qui m’a mis la puce à l’oreille : il y avait bien des caractères « illégaux » dans le fichier JS… tout ça parce que j’avais oublié d’activer « Afficher la console en cas d’erreur » dans la version 9, qui restait donc muette.
    :Ooops:

    Je remercie la fonction « Zap gremlins » de TextWrangler qui m’a permis de m’en débarrasser en un tournemain.
    :contentdance:

    Je vais encore bricoler un peu le script pour le « bilinguiser » et pour que le résultat s’affiche dans une boite d’alerte, ce qui le rendra utilisable aussi avec Reader.

    Merci Alex, bravo !

    #49919
    Merlin
    Maître des clés

    Je retombe par hasard sur ce sujet bien longtemps après, depuis j’ai découvert l’application (gratuite et en français) ColorPage qui permet de mesurer précisément la quantité d’encre sur une image…
    Et oui, ça ne fonctionne pas sur les PDF, il faudra les exporter en images TIFF…

    ==> http://titojean.free.fr/

    :bravo:

    #49920
    phigar
    Membre

    Bonjour,
    Comment puis je installer ce Script dans Acobat Pro DC ?
    Merci

    #49921
    bebarth
    Maître des clés

    bonjour,
    Il faut placer un fichier .js dans le répertoire JavaScript d’Acrobat.
    Si tu ne sais pas ou il se trouve, tu télécharges l’utilitaire show_me_the_path :
    https://www.abracadabrapdf.net/utilitaires/utilities-in-english/show_me_the_path-en/
    @+
    :bonjour:

    #49922
    phigar
    Membre

    Merci, je vais tester

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