En muchas aplicaciones puede ser útil el hecho de crear o generar un fichero PDF a partir de la interacción del usuario: generador de órdenes de trabajo, creación de informes a partir de un formulario, emisión de facturas, etc. El problema es que, por defecto, MIT App Inventor no es capaz de generar un fichero en este formato.
En este artículo os mostraré como podemos crear de una manera bastante sencilla un fichero PDF usando una API externa.
PDFCrowd
En este sitio web podremos realizar las siguientes conversiones:
- HTML a PDF
- HTML a Imagen
- PDF a PDF
- PDF a Imagen
- Imagen a imagen
Es un servicio de pago pero nos ofrece la posibilidad de probarlo sin costo(Trial) y si nos convence contratar alguno de su planes.
Tendremos que crearnos una cuenta de usuario y obtener una API Key que nos servirá para realizar las conversiones a PDF, en nuestro caso, desde nuestra aplicación.
La prueba de concepto: Campo de texto a PDF
Para ilustrar todo esto realizaremos una conversión sencilla de un simple campo de texto a documento PDF.
Necesitaremos incluir además...
- Componente Web para enviar/recibir los datos
- ActivityStarter para abrir el documento PDF generado en nuestra app
Es fundamental que una vez tengamos las credenciales de PDFCrowd(nuestro usuario y la API Key) las concatenemos de la siguiente manera, usuario:APIKey, y la convirtamos a la codificación Base64 usando un sitio web como
este: https://www.base64encode.org/. El resultado será una cadena "ininteligible" que
pondremos en una cabecera del componente web para poder gestionar la autenticación de nuestra app frente a los servidores de PDFCrowd.
Ejemplo: Si nuestro usuario es joseluis y la API KEY es 1234, obtendría la cadena joseluis:1234 que convertida a Base64 resultaría am9zZWx1aXM6MTIzNA== y tendría que ponerla junto a la
palabra Basic(indica el tipo de autenticación HTTP/S usada).
Para probarla escribiremos en el campo de texto, pulsaremos el botón Generar PDF y posteriormente Ver PDF.
Os dejo un enlace a la misma en Gallery para que la probéis y mejoréis como queráis:
Saludos y happy inventing!!!