Interactuar entre pdf embebido y pagina html
Publicado por Oscar Arias (2 intervenciones) el 09/12/2009 17:24:59
Hola, estoy realizando una aplicacion web con servlets que me muestra una ventana y metido en un iframe un pdf (via adobe plugin). Preciso que, cuando se efectue la presion de un boton de la barra de adobe se pueda llamar a un metodo javascript definido en la pagina html que lo contiene.
La idea es que, en el servlet lea el pdf, y "on the fly" le adose los contenidos javascript necesarios y se lo pase a la ventana.
Algo de codigo:
reader = new PdfReader(in);
stamp = new PdfStamper(reader, baosTemp);
stamp.getWriter().addJavaScript(
"function setReadOnly(readonly) {"
+ "var partner = this.getField('partner');"
+ "if(readonly) {"
+ "partner.value = '';"
+ "}"
+ "partner.readonly = readonly;"
+" }"
+ "function save(){"
+ " app.alert('save presionado 3');"
+ " alertar();"
+ "}"
+ "function validate() {"
+ "var married = this.getField('married');"
+ "var partner = this.getField('partner');"
+ "if (married.value == 'yes' && partner.value == '') {"
+ "app.alert('please enter the name of your partner');"
+ "}"
+ "else {"
+ "this.submitForm({"
+ " cURL:\"http://1t3xt.info/examples/request.php\","
+ " cSubmitAs: \"HTML\""
+ "});"
+ "}"
+" }" );
PushbuttonField saveAs = new PushbuttonField(stamp.getWriter(), new Rectangle(40, 760, 100, 780), "Save");
saveAs.setBorderColor(Color.BLACK);
saveAs.setText("Grabar....");
saveAs.setTextColor(Color.RED);
saveAs.setLayout(PushbuttonField.LAYOUT_LABEL_ONLY);
saveAs.setOptions(PushbuttonField.VISIBLE_BUT_DOES_NOT_PRINT);
PdfFormField validateAndSubmit = saveAs.getField();
validateAndSubmit.setAction(PdfAction.javaScript("save();", stamp.getWriter()));
stamp.addAnnotation(validateAndSubmit, 1);
Este codigo mete un botoncito en la pantalla y al clickearlo llama a la funcion save() que abre un popup. Pero desde dentro del objeto documento, pues no me efectua el llamado a la funcion alertar() definida en la pagina html.
Alguien podria darme una mano con el codigo para hacer esto?
La idea es que, en el servlet lea el pdf, y "on the fly" le adose los contenidos javascript necesarios y se lo pase a la ventana.
Algo de codigo:
reader = new PdfReader(in);
stamp = new PdfStamper(reader, baosTemp);
stamp.getWriter().addJavaScript(
"function setReadOnly(readonly) {"
+ "var partner = this.getField('partner');"
+ "if(readonly) {"
+ "partner.value = '';"
+ "}"
+ "partner.readonly = readonly;"
+" }"
+ "function save(){"
+ " app.alert('save presionado 3');"
+ " alertar();"
+ "}"
+ "function validate() {"
+ "var married = this.getField('married');"
+ "var partner = this.getField('partner');"
+ "if (married.value == 'yes' && partner.value == '') {"
+ "app.alert('please enter the name of your partner');"
+ "}"
+ "else {"
+ "this.submitForm({"
+ " cURL:\"http://1t3xt.info/examples/request.php\","
+ " cSubmitAs: \"HTML\""
+ "});"
+ "}"
+" }" );
PushbuttonField saveAs = new PushbuttonField(stamp.getWriter(), new Rectangle(40, 760, 100, 780), "Save");
saveAs.setBorderColor(Color.BLACK);
saveAs.setText("Grabar....");
saveAs.setTextColor(Color.RED);
saveAs.setLayout(PushbuttonField.LAYOUT_LABEL_ONLY);
saveAs.setOptions(PushbuttonField.VISIBLE_BUT_DOES_NOT_PRINT);
PdfFormField validateAndSubmit = saveAs.getField();
validateAndSubmit.setAction(PdfAction.javaScript("save();", stamp.getWriter()));
stamp.addAnnotation(validateAndSubmit, 1);
Este codigo mete un botoncito en la pantalla y al clickearlo llama a la funcion save() que abre un popup. Pero desde dentro del objeto documento, pues no me efectua el llamado a la funcion alertar() definida en la pagina html.
Alguien podria darme una mano con el codigo para hacer esto?
Valora esta pregunta
0