Home Foros Foro dudas Foro de JavaScript Perfeccionar código para especificar páginas de un PDF con tamaño distinto A4

Perfeccionar código para especificar páginas de un PDF con tamaño distinto A4

  • Este debate tiene 1 respuesta, 1 mensaje y ha sido actualizado por última vez el hace 6 meses por nagore.
Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #10826

    nagore
    Participante

    Hola, necesito perfeccionar este código para que además de indicar el tamaño de las páginas de un PDF, especifique qué números de páginas son las que tienen un tamaño distinto de A4.

    Con el código actual obtengo este resultado:
    <p style=»text-align: left;»>Hay 10 páginas en este PDF</p>
    <p style=»text-align: left;»>4 páginas A4</p>
    <p style=»text-align: left;»>2 páginas A3</p>
    <p style=»text-align: left;»>1 páginas A2</p>
    <p style=»text-align: left;»>2 páginas A1</p>
    <p style=»text-align: left;»>1 páginas A0</p>
     

    Pero quiero obtener este resultado:

    Hay 10 páginas en este PDF

    4 páginas A4

    2 páginas A3 – números pág.: 4,8

    1 páginas A2 – números pág.: 10

    2 páginas A1 – números pág.: 2,5

    1 páginas A0 – números pág.: 3

     

    El código actual es este:
    <p style=»margin: 0cm; margin-bottom: .0001pt; background: aqua; vertical-align: baseline;»><b style=»mso-bidi-font-weight: normal;»><i style=»mso-bidi-font-style: normal;»><span style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b;»>var msgText = «Hay » + this.numPages + » páginas en este PDF\n»; </span></i></b></p>
    <p style=»margin: 0cm; margin-bottom: .0001pt; background: aqua; vertical-align: baseline;»><b style=»mso-bidi-font-weight: normal;»><i style=»mso-bidi-font-style: normal;»><span lang=»EN-US» style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b; mso-ansi-language: EN-US;»>// counters
    var numA4 = 0;
    var numA3 = 0;
    var numA2 = 0;
    var numA1 = 0;
    var numA0 = 0;
    </span></i></b><i style=»mso-bidi-font-style: normal;»><span lang=»EN-US» style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b; mso-ansi-language: EN-US;»>
    <b style=»mso-bidi-font-weight: normal;»>// 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 += («La página » + (pagenum+1) + » mide » + (width/72).toFixed(2) + » de ancho » <span style=»mso-spacerun: yes;»> </span>+ » y » + (height/72).toFixed(2) + » de alto » + «pulgadas\n»);  }
    msgText +=</b></span></i></p>
    <p style=»margin: 0cm; margin-bottom: .0001pt; background: aqua; vertical-align: baseline;»><b style=»mso-bidi-font-weight: normal;»><i style=»mso-bidi-font-style: normal;»><span lang=»EN-US» style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b; mso-ansi-language: EN-US;»>  </span></i></b><b style=»mso-bidi-font-weight: normal;»><i style=»mso-bidi-font-style: normal;»><span style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b;»>numA4 + (» páginas A4 \n» )
    + numA3 + (» páginas A3\n» )
    + numA2 + (» páginas A2\n» )
    + numA1 + (» páginas A1\n» )
    + numA0 + (» páginas A0\n» )
    + (this.numPages++ – (numA4+numA3+numA2+numA1+numA0)) + » páginas de otros tamaños»;
    app.alert(msgText);</span></i></b><i style=»mso-bidi-font-style: normal;»><span style=»font-size: 10.0pt; font-family: ‘adobe-clean-serif’,serif; color: #4b4b4b;»> </span></i></p>

    #10827

    nagore
    Participante

    Hola, necesito perfeccionar este código para que además de indicar el tamaño de las páginas de un PDF, especifique qué números de páginas son las que tienen un tamaño distinto de A4.

    Con el código actual obtengo este resultado:
    Hay 10 páginas en este PDF
    4 páginas A4
    2 páginas A3
    1 páginas A2
    2 páginas A1
    1 páginas A0

    Pero quiero obtener este resultado:

    Hay 10 páginas en este PDF
    4 páginas A4
    2 páginas A3 – números pág.: 4,8
    1 páginas A2 – números pág.: 10
    2 páginas A1 – números pág.: 2,5
    1 páginas A0 – números pág.: 3

    El código actual es este:
    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 += («La página » + (pagenum+1) + » mide » + (width/72).toFixed(2) + » de ancho » + » y » + (height/72).toFixed(2) + » de alto » + «pulgadas\n»); }
    msgText +=
    numA4 + (» páginas A4 \n» )
    + numA3 + (» páginas A3\n» )
    + numA2 + (» páginas A2\n» )
    + numA1 + (» páginas A1\n» )
    + numA0 + (» páginas A0\n» )
    + (this.numPages++ – (numA4+numA3+numA2+numA1+numA0)) + » páginas de otros tamaños»;
    app.alert(msgText);

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.

Píldoras Informáticas

Comencé esta aventura para dar soporte a mis alumnos presenciales. Con el apoyo de todos los que me seguís mi canal de YouTube y esta web han crecido mucho más de lo que yo esperaba. Gracias a todos por estar ahí.

Quién está aquí ahora

Foto del perfil de juan galaz
Foto del perfil de Andrés Fernando Rivera Ortega
Foto del perfil de Alberto Alejandro Moyano
Foto del perfil de MANUEL LÓPEZ