Ver la Versión Completa : [ CONSULTA ] Generar informe en pdf con consulta de variables
dj_janker
29/04/16, 09:43:42
Hola,
sigo investigando en el mundo Tasker, y cuanto más avanzo más cosas productivas se me ocurren. A ver os cuento mi idea a ver si es posible realizarla, en cuyo caso necesito vuestras orientaciones:
Me gustaría hacer una tarea en la que tras introducir una serie de datos de manera manual, mediante consulta de variables por ejemplo, se genere un archivo pdf (en tamaño A4) con el resultado de esos datos introducidos, pero ese documento debe tener un formato determinado de ante mano. Es decir yo creo un formato con los "huecos" y posiciones donde deberán insertarse esas variables, y cuando acabe de introducir los datos y finalice la tarea, debo obtener un pdf con todos los datos introducidos correctamente ubicados, listo para imprimir, por ejemplo.
He estado buscando, pero se ve que no doy con la combinación de palabras adecuada, ya que no obtengo ningún resultado que se acerque a lo que busco. Pero estoy seguro que se podrá hacer y no debe ser demasiado complicado...., o eso espero :risitas:
WillyWeb
29/04/16, 11:38:28
No me suena nada que permita generar un PDF desde Tasker :rolleyes:
Lo mismo te vale una impresora virtual como las que se usan en el PC, o una web a la que le mandes un texto y te devuelva un PDF.
Si lo quieres hacer "programando" se me ocurre que lo mismo es posible desde JavaScript...
https://www.google.es/webhp?q=pdf+generator+javascript
dj_janker
29/04/16, 11:58:49
No me suena nada que permita generar un PDF desde Tasker :rolleyes:
Lo mismo te vale una impresora virtual como las que se usan en el PC, o una web a la que le mandes un texto y te devuelva un PDF.
Si lo quieres hacer "programando" se me ocurre que lo mismo es posible desde JavaScript...
https://www.google.es/webhp?q=pdf+generator+javascript
El PDF es el resultado final. Eso como dices se puede generar externamente. Lo que necesito es el paso previo entonces.
Me vale cualquier formato intermedio. Lo que mas difícil veo es como crear el "formulario" donde insertar las variable recopiladas
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
29/04/16, 12:19:48
... Me vale cualquier formato intermedio. Lo que mas difícil veo es como crear el "formulario" donde insertar las variable recopiladas ...
Creo que lo más sencillo de manipular desde Tasker es un archivo HTML (es texto plano). Lo creas con una herramienta online, lo descargas en local, lo abres desde Tasker y lo envías a un convertidor online de HTML a PDF ... lo mismo funciona y todo :sisi1:
dj_janker
29/04/16, 12:29:36
Creo que lo más sencillo de manipular desde Tasker es un archivo HTML (es texto plano). Lo creas con una herramienta online, lo descargas en local, lo abres desde Tasker y lo envías a un convertidor online de HTML a PDF ... lo mismo funciona y todo :sisi1:
Ok, de html ni papa....[emoji13]
Pero como el formato que quiero usar como formulario lo tengo en Word, voy a intentar convertirlo en html con algún conversor online que he visto que existen....
Voy a probar esta tarde a ver que sale.
Ya te cuento
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
29/04/16, 12:48:36
Pero como el formato que quiero usar como formulario lo tengo en Word...
Directamente en Word ... Guardar como > Página web (*.html, *.html)
Y si te aparece la opción (depende de qué versión de Word uses) mejor todavía en "Página web, filtrada".
dj_janker
29/04/16, 12:56:24
Directamente en Word ... Guardar como > Página web (*.html, *.html)
Y si te aparece la opción (depende de qué versión de Word uses) mejor todavía en "Página web, filtrada".
Perfecto.
La duda que me surge ahora es si antes de pasar a html el archivo Word, tengo que rellenar los distintos campos que quiero completar desde tasker con los nombres de las variables?
Por ejemplo si en el Word tengo un campo llamado "Dirección", debo completarlo con %dir, para que luego cuando ejecute una orden en tasker Escribir archivo/texto %dir, se rellene ese campo con el texto que haya asignado a esa variable %dir?
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
29/04/16, 13:02:29
... si en el Word tengo un campo llamado "Dirección", debo completarlo con %dir, para que luego cuando ejecute una orden en tasker Escribir archivo/texto %dir, se rellene ese campo con el texto que haya asignado a esa variable %dir?
Pues seguramente esa es la forma más sencilla de hacerlo :ok:
dj_janker
29/04/16, 14:20:13
Pues seguramente esa es la forma más sencilla de hacerlo :ok:
Bueno, he pasado el Word a html y lo he guardado en local en el dispostivo android.
Antes de pasarlo a html, en la casilla del formulario correspondiente a "Dirección" la he rellenado con: %direccion
Luego he seguido la siguiente secuencia:
1. Establecer variable %dir a Calle
2. Leer Archivo X.htm y lo he metido en la variable %arch0
3. Escribir archivo %arch0 Texto %dir
4. Leer Archivo X.htm en variable %arch
5. Flash Texto %arch
y me muestra %dir
Es decir, así lo que consigo es crear un archivo nuevo, borrando todo su contenido e insertando la variable %dir.
No sé como insertar la variable %dir que he establecido en el primer punto dentro del campo %dir del .htm
dj_janker
29/04/16, 14:28:38
Bueno, he pasado el Word a html y lo he guardado en local en el dispostivo android.
Antes de pasarlo a html, en la casilla del formulario correspondiente a "Dirección" la he rellenado con: %direccion
Luego he seguido la siguiente secuencia:
1. Establecer variable %dir a Calle
2. Leer Archivo X.htm y lo he metido en la variable %arch0
3. Escribir archivo %arch0 Texto %dir
4. Leer Archivo X.htm en variable %arch
5. Flash Texto %arch
y me muestra %dir
Es decir, así lo que consigo es crear un archivo nuevo, borrando todo su contenido e insertando la variable %dir.
No sé como insertar la variable %dir que he establecido en el primer punto dentro del campo %dir del .htm
Ok, acabo de encontrar la solución.
Antes probé, porque suponía que era lo lógico, la opción Buscar y Reemplazar variable, pero no vi la opción de Reemplazar coincidencia.
Ahora haciendo una búsqueda en %arch0 de la variable %direccion y sustituyendo la coincidencia con %dir todo perfecto!!
Ahora tengo que encontrar la mantera de imprimir el .htm en pdf.
Se aceptan sugerencias.
Saludos.:gracias:
dj_janker
04/05/16, 09:35:32
Bueno, sigo con las pruebas pero me he estancado....
Ahora mismo consigo leer el archivo .htm en una variable y buscar y reemplazar las variables que quiero en las distintas partes del formulario. El problema es que no sé como seguir.
Lo que necesito es dejar el formulario "plantilla" sin modificar para poder utilizarlo todas las veces que necesite, y al mismo tiempo pretendo guardar una copia del documento generado con los campos rellenos con las variables introducidas con otro nombre.
Para ello he usado la opción escribir archivo, con extensión .htm, usando como texto la variable que contiene todo el archivo modificado. El problema es que si me envió este nuevo archivo por email al pc y lo abro con Word me aparece todo el formato cambiado.
Alguna idea para hacerlo sin que se me cambie el formato?
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
04/05/16, 10:12:33
... El problema es que si me envió este nuevo archivo por email al pc y lo abro con Word me aparece todo el formato cambiado ...
¿Has intentado abrir ese documento HTML antes de hacer la sustitución de variables? Si el formato cambia después de hacer esa sustitución es que tocas algo que no deberías tocar.
dj_janker
04/05/16, 10:14:28
¿Has intentado abrir ese documento HTML antes de hacer la sustitución de variables? Si el formato cambia después de hacer esa sustitución es que tocas algo que no deberías tocar.
Lo que hago es leerlo directamente y meterlo en una variable. Luego hago la búsqueda y sustitucion .
Voy a probar a abrir en lugar de leer, a ver si así no se modifica
Enviado desde mi JY-S3 mediante Tapatalk
dj_janker
04/05/16, 11:15:21
¿Has intentado abrir ese documento HTML antes de hacer la sustitución de variables? Si el formato cambia después de hacer esa sustitución es que tocas algo que no deberías tocar.
Esta es la descripción de mi tarea:
Test Certificado4 (126)
A1: Consulta de Variable [ Título:X Variable:%sio Tipo de entrada:Texto Normal Por Defecto: Imagen de fondo: Disposición:Variable Query Cuenta atrás (segundos):40 Mostrar sobre bloqueo pantalla:Encendido ]
A2: Leer Archivo [ Archivo:Download/PLANTILLA.htm A la variable:%arch ]
A3: Buscar y Reemplazar Contenido de Variable [ Variable:%arch Buscar:%var Ignorar Caso:Apagado Multilínea:Apagado Una sola coincidencia:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con:%sio ]
A4: Escribir archivo [ Archivo:Download/%DATE_%TIME.htm Texto:%arch Añadir:Apagado Añadir Nueva Línea:Encendido ]
Con ella el nuevo archivo de nombre %DATE_%TIME.htm aparece con cosas raras....:loco:
WillyWeb
04/05/16, 11:37:49
Vale. Tu intención es que tu plantilla contenga el literal "%var" en uno o más sitios y luego cambiar ese literal por el contenido de la variable %sio. Siempre que no definas el valor de %var (y no está definido) la sustitución de A3 funcionará porque el contenido de %var es precisamente "%var" (como literal). Sin ver el contenido de la plantilla no se puede asegurar al 100%, pero parece que ese no es problema.
Cuando dices que "aparecen cosas raras", ¿a qué te refieres? ... ¿símbolos extraños, o cosas descolocadas?
Y lo que te proponía antes es abrir la plantilla en Word para ver si tiene el formato que esperas después de la conversión de .doc a .htm ... no sea que ya salga mal antes de hacer nada con Tasker.
dj_janker
04/05/16, 11:43:57
Vale. Tu intención es que tu plantilla contenga el literal "%var" en uno o más sitios y luego cambiar ese literal por el contenido de la variable %sio. Siempre que no definas el valor de %var (y no está definido) la sustitución de A3 funcionará porque el contenido de %var es precisamente "%var" (como literal). Sin ver el contenido de la plantilla no se puede asegurar al 100%, pero parece que ese no es problema.
Cuando dices que "aparecen cosas raras", ¿a qué te refieres? ... ¿símbolos extraños, o cosas descolocadas?
Y lo que te proponía antes es abrir la plantilla en Word para ver si tiene el formato que esperas después de la conversión de .doc a .htm ... no sea que ya salga mal antes de hacer nada con Tasker.
Si, la variable a sustituir la introduzco con una consulta de variable, pero eso es intrascendente. Ya lo he probado y si establezco su valor, si que lo sustituye.
El formato lo he probado antes de meterlo en la tarea, tanto en Word en el pc, como con el visor html de android en el propio teléfono y es correcto.
Lo que ocurre es lo que dices, cuando lo reescribo aparecen signos raros, cosas descolocadas, tipos de letras distintas, etc...
WillyWeb
04/05/16, 12:12:14
Lo que ocurre es lo que dices, cuando lo reescribo aparecen signos raros, cosas descolocadas, tipos de letras distintas, etc...
Tiene toda la pinta de ser un problema en la codificación del archivo. Me suena que Tasker usa UFT-8, pero no estoy seguro. Cuando hagas la conversión de .doc a .htm pulsa el botón "Herramientas > Opciones web..." y en la pestaña "Codificación" selecciona "Unicode (UTF-8)". Y si es esa la que estás usando prueba con una que sea "DOS", "ISO" o "Windows". Siento no poder ser más preciso.
dj_janker
04/05/16, 12:29:56
Tiene toda la pinta de ser un problema en la codificación del archivo. Me suena que Tasker usa UFT-8, pero no estoy seguro. Cuando hagas la conversión de .doc a .htm pulsa el botón "Herramientas > Opciones web..." y en la pestaña "Codificación" selecciona "Unicode (UTF-8)". Y si es esa la que estás usando prueba con una que sea "DOS", "ISO" o "Windows". Siento no poder ser más preciso.
Eso era!! Hay que tener en cuenta de codificar el archivo como Unicode (UTF-8), con las demás opciones no me ha funcionado. Con esta si mantiene el formato tras la modificación!! :gracias::gracias::gracias:
Como siempre mil gracias!. No hubiera dado con esto yo solo.... :ok::ok:
Caravantes
04/05/16, 12:47:19
Esta es la descripción de mi tarea:
Yo te recomendaría que hicieras tres pruebas, no excluyentes.
A) En la acción A4 que escribe el nuevo archivo... quita la marca de la casilla AÑADIR NUEVA LÍNEA. Eso no es necesario y añade una modificación en el contenido del archivo, puede que esa modificación esté creando alguna complicación. En realidad veo poco probable que esto vaya a resolver el problema.
B) Elimina la acción A3 que hace el reemplazo en la variable. Dejas una tarea que copia el archivo en una variable, y luego pasa el contenido de la variable a otro archivo, sin modificar el contenido. Si el problema persiste confirmaríamos la teoría de Willy: se trata de un problema de codificación en lo relativo a lectura/escritura del fichero.
C) Veo innecesaria la acción A2 (Leer Archivo). Puesto que eso es documento fijo, igual podrías establecerlo directamente a nivel de la variable. Te explico cómo.
Empecemos en el ordenador, donde tienes un fichero HTM que te sirve de plantilla.
Haces una copia del fichero y la renombras con la extensión TXT.
Abres ese archivo TXT con el bloc de notas, seleccionas todo su contenido y lo copias al portapapeles (Ctrl-C).
Todavía en el ordenador, creas un mensaje de correo nuevo dirigido a tu propia dirección, y en el cuerpo del mensaje pegas el contenido del portapepeles (Ctrl-V). Envía el mensaje.
En el smartphone, localiza ese mensaje. Lo abres. Seleccionas todo el contenido del cuerpo del mensaje. Lo copias al portapepeles.
Creas una tarea nueva con la acción
A1: Establecer variable %arch, a... ahí le das a PEGAR el contenido del portapeles. De esta forma, la tarea directamente le mete a la variable el contenido adecuado, sin necesidad de hacer la lectura de ningún archivo.
Luego añades una segunda acción
A2: Escribir archivo [ Archivoownload/%DATE_%TIME.htm Texto:%arch Añadir:Apagado Añadir Nueva Línea:Encendido ]
Teniendo solo esas dos acciones, ejecuta la tarea para comprobar si el archivo generado es correcto. En caso afirmativo tienes el problema resuelto y ya sabes cómo seguir.
Espero que hayas entendido la jugada. Si el problema de codificación estaba en la operación de lectura del fichero, creo que de esta forma lo habrás esquivado porque ya no hay lectura de fichero. Si el problema estaba en la escritura del fichero, entonces creo que no habremos resuelto nada. Suerte.
WillyWeb
04/05/16, 13:05:23
B) Elimina la acción A3 que hace el reemplazo en la variable. Dejas una tarea que copia el archivo en una variable, y luego pasa el contenido de la variable a otro archivo, sin modificar el contenido. Si el problema persiste confirmaríamos la teoría de Willy: se trata de un problema de codificación en lo relativo a lectura/escritura del fichero.
Al hacer eso en mi dispositivo me he dado cuenta de que podía tratarse de un problema de codificación.
C) Veo innecesaria la acción A2 (Leer Archivo). Puesto que eso es documento fijo, igual podrías establecerlo directamente a nivel de la variable. Te explico cómo...
Yo también lo he pensado, pero como me ha parecido que quería mantener ese archivo/plantilla no he propuesto su eliminación. Casi seguro que con el cambio de "leer archivo" a "establecer variable" desaparece el problema. Tengo un par de cosas hechas así y funcionan perfectamente.
WillyWeb
04/05/16, 13:08:11
Eso era!! Hay que tener en cuenta de codificar el archivo como Unicode (UTF-8)...
Mierda :oh:
He contestado a Caravantes sin darme cuenta de que ya habías dado con la solución. Me alegro de que mis indicaciones te llevasen a localizar el problema.
Hasta la próxima :cucu:
dj_janker
04/05/16, 14:03:52
Hola Caravantes creo que ha coincidido que mientras escribías tu respuesta yo había confirmado que la solución de WillyWeb era la correcta. De igual modo agradezco tu propuesta ya que no se me había ocurrido y es buena opción para otros casos.
Lo dicho mil gracias a los 2.
P.D. ahora solo me queda pasarlo a PDF...
He estado investigando e imagino que se hará con un Http post a una web de impresión de PDF online y rescatando el archivo generado con Http get.
Ese es el concepto , pero no tengo idea como hacerlo.
Lo habéis hecho alguno?
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
04/05/16, 16:41:11
He estado investigando e imagino que se hará con un Http post a una web de impresión de PDF online y rescatando el archivo generado con Http get.
Ese es el concepto , pero no tengo idea como hacerlo. Lo habéis hecho alguno?
Sí, esa es la idea, pero de esa forma no lo he usado nunca :(
Será cosa de investigar un poco :silbando:
Caravantes
04/05/16, 16:46:50
He estado investigando e imagino que se hará con un Http post a una web de impresión de PDF online y rescatando el archivo generado con Http get.
Pues sí que es una idea interesante, utilizar una web de esas que convierten documentos HTM a formato PDF, pero no veo fácil el procedimiento para inyectar el archivo ni para capturar el resultado.
Otra opción es instalar una app que haga directamente la conversión, como por ejemplo "Write on PDF"
https://play.google.com/store/apps/details?id=com.samsung.android.spdfnote
Pero tampoco se me ocurre un método para que Tasker pueda usar esa app, de forma que la tarea Tasker finalice generando el documento PDF.
¿Has probado a generar un PDF a modo de plantilla y que la tarea Tasker coja ese contenido y trate de sustituir los texos fijos de la plantilla. Sería igual a lo que ahora haces con el fichero HTM, pero haciéndolo directamente con el PDF. No estoy seguro de que funcione porque el formato PDF es mucho más complejo que el formato HTM. Yo nunca he probado ninguna de estas opciones. Ya nos contarás.
dj_janker
04/05/16, 16:50:31
Con apps de ese tipo si he probado, pero como dices desde tasker no consigo nada con ellas.
La opción de trabajar directamente con el PDF no la trasteado, quizás pudiera ser la solución.
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
04/05/16, 17:13:53
La opción de trabajar directamente con el PDF no la trasteado, quizás pudiera ser la solución.
No pierdas el tiempo. La estructura interna de un PDF es demasiado compleja para plantearse trastear en sus tripas.
Y por cierto, ¿por qué un PDF?
dj_janker
04/05/16, 17:16:09
La idea era sacar el informe acabado sin posibilidad de edición para poder enviarlo por email directamente sin necesidad de tener que pasar por un pc para finalizar el proceso
Enviado desde mi JY-S3 mediante Tapatalk
WillyWeb
04/05/16, 17:43:36
La idea era sacar el informe acabado sin posibilidad de edición para poder enviarlo por email directamente sin necesidad de tener que pasar por un pc para finalizar el proceso
No encuentro una forma sencilla de hacer esa conversión online de forma automática. Lo más sencillo es hacerlo a mano y no complicarse demasiado la vida.
Mientras le daba vueltas al tema se me ha ocurrido otra cosa. Subir el .HTM a tu cuenta de Google Drive y desde ella hacer el envío por email. En la versión web de Drive es cosa de dos clics (cuatro como mucho) crear un email y adjuntar el archivo convertido a PDF (lo he probado ahora mismo). Si la versión Android de Drive también hace eso casi lo tendrías resuelto ... ¿cómo lo ves?
Otra posibilidad es hacer la conversión a PDF con una aplicación en el móvil y luego enviar el archivo resultante por email...
https://play.google.com/store/search?q=pdf+converter&c=apps
BlackBlex
04/05/16, 17:52:08
Lo único que se me ocurre para usar la app de HTML a PDF, que ha pasado Caravantes con Tasker, es hacer uso de AutoInput, aunque la limitación es que deberías de encender la pantalla y tener el equipo desbloqueado si usas patrón, pin o contraseña.
Enviado desde mi MotoG3 mediante Tapatalk
dj_janker
05/05/16, 17:19:33
No encuentro una forma sencilla de hacer esa conversión online de forma automática. Lo más sencillo es hacerlo a mano y no complicarse demasiado la vida.
Mientras le daba vueltas al tema se me ha ocurrido otra cosa. Subir el .HTM a tu cuenta de Google Drive y desde ella hacer el envío por email. En la versión web de Drive es cosa de dos clics (cuatro como mucho) crear un email y adjuntar el archivo convertido a PDF (lo he probado ahora mismo). Si la versión Android de Drive también hace eso casi lo tendrías resuelto ... ¿cómo lo ves?
Otra posibilidad es hacer la conversión a PDF con una aplicación en el móvil y luego enviar el archivo resultante por email...
https://play.google.com/store/search?q=pdf+converter&c=apps
Si, creo que lo más fácil, aunque haya que intervenir manualmente, es una app para imprimir el pdf.
:ok::ok:
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.