Ir al contenido principal

Crear un PDF con Ionic 4 y PDF Make (Paso a Paso)

Uno de los requisitos que he tenido que crear en apps del mundo real es la necesidad de crear un contrato en PDF, el mismo que tenga una imagen, y se puede descargar al dispositivo.

PDF MAKE

Investigando he dado con una librería llamada PDF Make, aquí esta el sitio web si gustas darle un super vistazo al sin número de opciones que tiene. http://pdfmake.org/#/, hasta tiene una parte donde tu mismo puedes experimentar http://pdfmake.org/playground.html algunos cambios, pero nosotros lo tenemos que implementar en ionic 5. Así que veamos como.

Ionic 5 y Generación de PDF

Creamos una nueva aplicación en ionic con el comando:
ionic start crearPdf blank
Necesitamos dos directivas instalarla en nuestro proyecto, con los siguientes comandos:
ionic cordova plugin add cordova-plugin-file
npm install @ionic-native/file

En el modulo general, en app.module.ts tenemos que llamar al modulo file que nos ayudará una vez creado el PDF, generar el archivo para descarga. El código del app.module.ts quedaría así:

import { File } from '@ionic-native/file/ngx';
Y en los providers añadirlo, quedando así:
providers: [
    StatusBar,
    File,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
En el home.page.html o en la página donde quieras generar el PDF, deberás incluir un botón o un método que llame ta función, para este caso crearemos un botón que diga Generar PDF. Y quedaría de la siguiente forma:
<ion-content>
  <div id="wrapper">
    <ion-button color="primary" (click)='crearPdf()' >Generar PDF</ion-button>
  </div>
</ion-content>
En el archivo .ts del Home crearemos la función crearPDF, quedando así el archivo home.page.ts:

makePdf(){
    pdfmake.vfs = pdfFonts.pdfMake.vfs;
    var docDefinition = {
      content: [
      {
        columns: [
        {
          image: 'data:image/png;base64, (aqui tu imagen en base 64)
},
        [
          { text: 'CLARO', style: 'header' },
          { text: 'Contrato de Contratacion de Servicios', style: 'sub_header' },
          { text: 'WEBSITE: https://claro.com.ec/', style: 'url' },
        ]
      ]
      }
      ],
      styles: {
        header: {
          bold: true,
          fontSize: 20,
          alignment: 'right'
        },
      sub_header: {
        fontSize: 18,
        alignment: 'right'
      },
      url: {
      fontSize: 16,
      alignment: 'right'
      }
      },
      pageSize: 'A4',
      pageOrientation: 'portrait'
      };
      /* pdfmake.createPdf(docDefinition).open(); */
      pdfmake.createPdf(docDefinition).download('archivo');
  }

Finalmente compilamos todo el proyecto con ionic serve y funcionaría así.


Finalmente se descarga el PDF y listo terminamos por el día de hoy.


Comentarios

Entradas populares de este blog

Geolocalización con Ionic 4 y compatible con PWA

Hola mis amigos, el día de hoy vamos a crear una app de Geolocalización, esto nos ayudará a obtener las coordenadas de donde esta nuestro cliente para futuras implementaciones en diferentes escenarios, el día de hoy haremos una demo de geolocalización tanto que funcione para dispositivos, como para Web Browser. Empecemos. 1.- Creamos el proyecto en Ionic 4 con la sentencia: ionic start localizacion blank Esperamos que se cree la carpeta, las dependencias, etc, etc vamos a tomar un café y regresamos, (Y si, es necesario tener Internet en tu PC). 2.- Entramos al directorio creado con cd localización. 3.- Instalamos el plug-in que va hacer la magia por nosotros, el  Ionic 4 Geolocation plugin, usando el siguiente comando: ionic cordova plugin add cordova-plugin-geolocation 3.1.- Esto va instalar algunas dependencias de Ionic que serán necesarias para que funcione el proyecto. 3.2.- Instalamos las dependecias con el siguiente comando: npm install @ionic-nati...

Convertir una imagen PNG/JPG a base64 en Ionic 4

Las imágenes se trabajan en base64 para poderlas enviar a traves de un objeto JSON a las API's o micro servicios, por eso es importante que nuestra app internamente convierta un jpg,png desde los assets a una base64. En este episodio hablaremos de como seleccionar una imagen desde la galeria y convertirla en un string valido en base64. Primero crear el proyecto mediante el comando: ionic start imagenBase64 blank Entramos al directorio de la aplicación y vamos a instalar las dependencias que vamos a ir necesitando para este proyecto, las voy a ir listando a continuación cada una: ionic cordova plugin add cordova-plugin-camera npm install @ionic-native/camera ionic cordova plugin add cordova-plugin-file npm install @ionic-native/file ionic cordova plugin add cordova-plugin-crop npm install @ionic-native/crop Una vez instaladas todas estas dependencias ahora si vamos abrir el proyecto en nuestro editor de código favoritos, el mio es Visual Studio Code. Abrimos ...