Mesurer le taux de remplissage des pages. - RÉPONDU  (Lu 22272 fois) Partager ce sujet Imprimer

1 B


skywalker  26 novembre 2008 : 09:47

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.

IP archivée


Merlin  26 novembre 2008 : 12:19

Qu'entend tu exactement par "taux de remplissage" ?
Un ratio de surface utilisée ?
 :???:

IP archivée


skywalker  26 novembre 2008 : 12:39

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 ...)


IP archivée


Merlin  26 novembre 2008 : 13:22

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

 :???: :doute:

IP archivée


alex  18 janvier 2009 : 19:51

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 ?

IP archivée


Merlin  18 janvier 2009 : 21:36

Waow !

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

 :D

IP archivée


alex  22 janvier 2009 : 22:54

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.

IP archivée


Merlin  23 janvier 2009 : 11:02

A demain, je suis impatient !

 ;)

IP archivée


alex  23 janvier 2009 : 22:52

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<nbreMots)
  {
  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<rectmotstr.length)
    {
    chaine=chaine+rectmotstr[pointeur];
    pointeur=pointeur+1;
    }
  xy=new Array();
  val=new Array();
  xy[0]=0;
  pointeur=0;
  pos=0;
    while(pointeur<chaine.length)
    {
      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})

IP archivée


Merlin  24 janvier 2009 : 17:21

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: :???:


IP archivée


alex  25 janvier 2009 : 11:00

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 !

IP archivée


Merlin  25 janvier 2009 : 12:44

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

 :contentdance:


IP archivée


alex  25 janvier 2009 : 14:28

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.

IP archivée


Merlin  25 janvier 2009 : 15:05

Oui, il faut modifier "cEnable" ainsi:

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

 ;)


IP archivée


alex  26 janvier 2009 : 21:38

Oui, absolument.

IP archivée


Merlin  04 février 2009 : 21:17

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 !



IP archivée


Merlin  18 mars 2012 : 14:32

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:

IP archivée


phigar  11 mars 2021 : 17:07

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

IP archivée


bebarth  11 mars 2021 : 17:52

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:

IP archivée


phigar  11 mars 2021 : 17:57

Merci, je vais tester

IP archivée