Programar un PDF

Symphony

Buenos días maestros, acudo a vosotros a ver si podéis iluminarme con lo que nos ha pedido un cliente:

Quiere un PDF con un formulario dentro (hasta aquí OK), donde haya un campo que al teclear una numeración haga una búsqueda para llamar a otros PDF y lo habra. No sé cuantas numeración son ni cuantos PDF pueden ser.

Es posible esto?

Un saludo.

pdj

Es posible, se me ocurre algo muy sencillito, al pdf le puedes añadir javascript, entonces puedes tener un campo de texto con un botón buscar, en el evento de mouse up del botón, añadir algo asi como:

var textToSearch = this.getField("searchField").value;
var pdfToOpen= app.openDoc("http://dom.com/"+textToSearch+".pdf");

Son dos lineas de código para mostrar que más o menos se puede, deberías añadirle control de que el campo no este vacio, que no se pueda abrir etc etc pero como "base" te sirve.

1 respuesta
Symphony

#2 Gracias, ya había podido conseguir algo, de hecho lo que tengo ahora es un switch para cada número que pueda escribir. El javascript se ejecuta al ir al siguiente campo:

var one = this.getField("campo");
switch (one.value) {
  case 1234:
      app.openDoc("/C/prueba/ANEXO_MRP.PDF");
    break;
  case 4321:
      app.openDoc("/C/prueba/uno.pdf");
    break;
  case 1111:
      app.openDoc("/C/prueba/dos.pdf");
    break;
}

El problema es que las acciones para ejecutar el javascript en PDF son muy pocas: al activar campo, al desactivar... Y necesito que cuando escriba el último número (son siempre 4) ejecute el javascript y no antes.
Así que aquí estoy dandome cabezasos a ver si puedo darle un evento estilo OnKeyPress pero no me funciona :(

Gracias por tu ayuda :)

0buS

Prueba con el evento OnChange

1 respuesta
Symphony

#4 El problema, es que no puedo editar los eventos que son los que ejecutan el js.

El js si puedo editarlo, pero las etiquetas XML no me deja, donde se puede ver el OnFocus.

0buS

Hmmm, échale un ojo a este enlacehttp://www.planetpdf.com/developer/article.asp?ContentID=javascript_dynamic_updates_w

1 respuesta
Symphony

#6 Gracias, al final lo he conseguido con el Keystroker de esta forma:

this.getField('campo').setAction('Keystroke', 'checkLength()'); 
function checkLength(){
    switch (event.value+event.change) {
    case '1234':
        app.openDoc("/C/prueba/ANEXO_MRP.PDF");
        break;
    case '4321':
        app.openDoc("/C/prueba/uno.pdf");
        break;
    case '1111':
        app.openDoc("/C/prueba/dos.pdf");
        break;
}
}; 

Saludos.

Usuarios habituales

  • Symphony
  • 0buS
  • pdj