Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado PDF desde prop WEB
14-06-2017, 04:20 PM
Mensaje: #1
PDF desde prop WEB
Hola, sería posible generar un fichero PDF desde un prop de tipo Web?
La idea es rellenar una serie de datos que el usuario debe introducir, mostrarlos formateados en un prop tipo Web (hasta aqui esta hecho y funciona correcto), pero ahora la idea sería mandar a un PDF el texto que hay en ese prop para que mantenga más o menos el mismo formato.
En principio sería para Android.
Gracias de antemano!
Un saludo!
Encuentra todos sus mensajes
15-06-2017, 08:17 AM
Mensaje: #2
RE: PDF desde prop WEB
Hola, el type="WEB" es en esencia un mundo aparte bastante independiente del framework. De momento, con lo que hay ahora, no es posible invocar desde el javascript del type="WEB" ninguna de nuestras APIs de script.

Se me ocurre que podrías generarlo enteramente dentro del type="WEB", con alguna librería de generación escrita enteramente en javascript (ésta tiene buena pinta) o en el lado del servidor directamente.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
15-06-2017, 10:00 AM
Mensaje: #3
RE: PDF desde prop WEB
Hola Juan Carlos

¿Y no existe otro modo de generar un PDF desde XOne a partir de un HTML?

saludos.
Encuentra todos sus mensajes
15-06-2017, 10:14 AM (Este mensaje fue modificado por última vez en: 15-06-2017 10:20 AM por Juan Carlos.)
Mensaje: #4
RE: PDF desde prop WEB
Si no hay que introducir datos en una web ni usar validación, que es lo que nos pide jesús, existe un método en el objeto XOnePDF, fromHtml(), que toma como parámetro un fichero html estático y trata de convertirlo a PDF.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
15-06-2017, 10:26 AM
Mensaje: #5
RE: PDF desde prop WEB
Hola Juan Carlos,
la idea es pedir unos datos previos, montar un HTML que se mostraria en un type="WEB" y entonces eso mandarlo a un PDF.
Es decir, el HTML que se mostraría sería estático...

Podría valer?

Un saludo!
Encuentra todos sus mensajes
15-06-2017, 11:02 AM
Mensaje: #6
RE: PDF desde prop WEB
¿El type="WEB" lo vais a usar únicamente para mostrar un HTML ya cargado con todos los datos? Entonces se puede usar el fromHtml().

Sería así:

Código:
function generarPDFHtmlString() {
    //var source = "<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>";
    var source = "<P> <TABLE border='1'> <CAPTION align='top'> A more complex table-within-a table. </CAPTION> <TR> <TH> Outer Table </TH> <TD> <TABLE border='1'> <CAPTION align='top'> An inner table showing a variety of headings and data items. </CAPTION> <TR> <TH colspan='5'> Inner Table </TH> </TR> <TR> <TH rowspan='2' colspan='2'> CORNER </TH> <TH colspan='3'> Head1 </TH> </TR> <TR> <TH rowspan='2'> Head2 </TH> <TH colspan='2'> Head3 </TH> </TR> <TR> <TH> Head4 </TH> <TH> Head5 </TH> <TH> Head6 </TH> </TR> <TR> <TD> A </TD> <TD rowspan='2' valign='middle' bgcolor= 'yellow'> Two Tall </TD> <TD bgcolor='green'> <UL> <LI> Lists can be table data </LI> <LI> Images can be table data </LI> </UL> </TD> <TD colspan='2' align='center'> Two Wide </TD> </TR> <TR valign='middle'> <TD> aaaaa </TD> <TD align='center'> A <A href='form.html'>Form</A> in a table: <FORM Method='POST' Action= 'http://www.december.com/cgi-bin/formmail.secure.cgi'> <INPUT type='hidden' name='recipient' value='nobody@december.com'><INPUT type= 'hidden' name='subject' value= 'Table Example'> Your age: <INPUT type= 'text' name='user-age' size='2'><BR> What is your favorite ice cream?<BR> <SELECT name='favorite-icecream'> <OPTION> Vanilla </OPTION> <OPTION> Chocolate </OPTION> <OPTION> Cherry Garcia </OPTION> <OPTION> Pizza Pancake </OPTION> <OPTION> None of the above! </OPTION> </SELECT><BR> <INPUT type='submit' value='OK'> <INPUT type='reset' value='Cancel'> </FORM> </TD> <TD> <TABLE> <CAPTION> No border </CAPTION> <TR> <TH> Little </TH> </TR> <TR> <TD> Table </TD> </TR> </TABLE> </TD> <TD> Multiple<BR> line<BR> item </TD> </TR> </TABLE> </TD> </TR> </TABLE> <P> For more practical examples, see the Periodic Table of the Elements, <A href= 'http://www.webelements.com/'>WebElements</A>. </P> <P> You can see a <A href='tablem.html'>variety of table cellspacing and cellpadding attributes demonstrated</A>. </P>";
    var pdf = null;
    try {
        pdf = createObject("XOnePDF");
    } catch(exception) {
        ui.showToast("Debe instalar el módulo de generación de PDFs");
        return;
    }
    pdf.permissions("assembly");
    pdf.create("/sdcard/testpdf.pdf");
    pdf.open();
    pdf.fromHtml(source);
    pdf.close();
    pdf.launchPDF();
}

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
15-06-2017, 11:04 AM
Mensaje: #7
RE: PDF desde prop WEB
(15-06-2017 10:14 AM)Juan Carlos escribió:  Si no hay que introducir datos en una web ni usar validación, que es lo que nos pide jesús, existe un método en el objeto XOnePDF, fromHtml(), que toma como parámetro un fichero html estático y trata de convertirlo a PDF.

Efectivamente, al ver la pregunta inicial de Jesús he preferido replantearla. Tal y como dice Jesús en su respuesta, el type Web solo lo usamos para presentar el HTML con los valores ya inyectados. El PDF se generará por script como cualquier otro, con la diferencia de que el contenido íntegro del PDF ya lo tenemos en el HTML. Si funciona correctamente la función fromHtml() (en la wiki no pone nada), el problema puede estar solucionado.

Muchas gracias.
Encuentra todos sus mensajes
15-06-2017, 11:06 AM
Mensaje: #8
RE: PDF desde prop WEB
Pues en cuanto pueda lo pruebo y os comento como fue la cosa!

Gracias!

Un saludo!
Encuentra todos sus mensajes
26-06-2017, 05:39 PM
Mensaje: #9
RE: PDF desde prop WEB
Hola Juan Carlos, estoy probando la funcionalidad y parece que funciona bastante bien.
Solo dos apuntes:
1. Los margenes se pueden definir? he probado con pdf.setDocumentMargins, pero no parece que los cambie. Se pueden poner margenes en el HTML para que los respete?

2. He intentado firmar digitalmente el PDF con el método signPDFWithKey() pero dice que el método no esta implementado en javascript, no hay problema, se puede hacer en vb, pero, que parámetros lleva ese método? "keystore.pfx", "1234", "Nombre de la clave", "Contraseña de la clave" no se a que se refieren...

Gracias de antemano!
Un saludo!
Encuentra todos sus mensajes
27-06-2017, 08:54 AM (Este mensaje fue modificado por última vez en: 27-06-2017 08:55 AM por Juan Carlos.)
Mensaje: #10
RE: PDF desde prop WEB
Los márgenes no se pueden ajustar al usar fromHtml(), en el código HTML sí podrías.

El método signPdfWithKey está expuesto en javascript, la d y la f es minúscula, siguiendo la regla de llamarlo en camelCase que usamos en toda la API javascript. Para firmar un pdf, necesitas un certificado digital. Los parámetros son:
1. Fichero PDF original.
2. Fichero PDF destino.
3. Fichero keystore que contenga el certificado. Busca por defecto en la carpeta files.
4. Contraseña del keystore.
5. Alias del certificado en el keystore.
6. Contraseña del certificado.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS