[ Foro de Javascript ]

contar tamaño y páginas de un pdf con JavaScript

31-Dec-2019 09:22
nagore ibai
0 Respuestas

Hola, tengo un Script para contar el número de páginas de distinto tamaño que tiene un PDF (A4, A3, A2, A1, A0 y otros). Pero me gustaría que, además, especificara cuáles son los números de páginas concretos que tienen un tamaño distinto de A4.
Es decir, si tengo un PDF con 20 páginas y hay 2 páginas (la 5 y la 15) que tienen tamaño A3, me gustaría que no solo indicara que hay 2 páginas con tamaño A3 sino que especificara además que son las páginas 5 y 15.
¿es posible? ¿Me podéis ayudar?

Para utilizar el Script solo hace falta abrir el PDF que queramos, abrir la consola de JavaScript (Ctrl+J), Copiar y Pegar el script en la consola, Seleccionar todo el script que ha pegado (Ctrl+A), y Presionar (CTRL+ENTRAR) para ejecutar todo el script. Si no lo hace, solo se ejecutará la última línea.

El Script es el siguiente:


var msgText = "Hay " + this.numPages + " páginas en este PDF\n";
// counters
var numA4 = 0;
var numA3 = 0;
var numA2 = 0;
var numA1 = 0;
var numA0 = 0;

// helper function to compare a number with some wiggle room
function inRange(wid,hei,targetWid,targetHei) {
   var wiggle = 28; // amount of error to allow
   return (wid>=(targetWid-wiggle) && wid<=(targetWid+wiggle)) &&  (hei>=(targetHei-wiggle) && hei<=(targetHei+wiggle)) || (hei>=(targetWid-wiggle) && hei<=(targetWid+wiggle)) &&  (wid>=(targetHei-wiggle) && wid<=(targetHei+wiggle))  }

for (pagenum=0;pagenum<this.numPages;pagenum++) {
   var pbox = this.getPageBox("Crop",pagenum);
   var width = (pbox[2] - pbox[0]);
   var height = (pbox[1] - pbox[3]);
  var recognized = false;
       if (inRange(width,height,595,842)) { numA4++; recognized = true; }  
       if (inRange(width,height,842,1191)) { numA3++; recognized = true; }
       if (inRange(width,height,1191,1684)) { numA2++; recognized = true; }
       if (inRange(width,height,1684,2384)) { numA1++; recognized = true; }
       if (inRange(width,height,2384,3370)) { numA0++; recognized = true; }  

   if (!recognized) msgText += ("Page " + (pagenum+1) + " has a width of " + (width/72).toFixed(2) + " and a height of " + (height/72).toFixed(2) + "inches\n");  }
msgText +=
 numA4 + (" pages A4 \n" )
+ numA3 + (" pages A3\n" )
+ numA2 + (" pages A2\n" )
+ numA1 + (" pages A1\n" )
+ numA0 + (" pages A0\n" )
+ (this.numPages++ - (numA4+numA3+numA2+numA1+numA0)) + " other pages";
app.alert(msgText);




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...