Skip to content

raulfb/html-to-pdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

html-to-pdf

Generar un PDF a partir de una plantilla html en la que substituimos una serie de datos usando minijinja. Esos datos pueden ser obtenidos de una API.

Requisitos.

Debido a que usamos la libreria wkhtmltopdf para crear el pdf tenemos que tener instalado en nuestro equipo el programa wkhtmltopdf. Se puede descargar desde su web

Configurar .env

Crear un archivo .env con el contenido del archivo example.env

Iniciar proyecto

Para iniciar el proyecto hay que ejecutar el siguiente comando:

    cargo run

Estructura

  • En la carpeta /plantillas es donde se guardan las plantillas html que se usaran para crear el pdf.
  • En la carpeta /pdf es donde se guardará el pdf.
  • En la carpeta /src se encuentran los siguientes archivos:
    • main.rs: se obtinenen los datos que vamos a substituir en el pdf de la api de dummyjson.
    • ejemploSencillo.rs: se obtienen los datos que vamos a substituir los definimos nosotros. Para ejecutar este archivo hay que descomentar la linea # path = "src/ejemploSencillo.rs" que está en el archivo Cargo.toml.
    • ejemploProducto.rs: se obtienen los datos que vamos a substituir los definimos nosotros. Para ejecutar este archivo hay que descomentar la linea # path = "src/ejemploProducto.rs" que está en el archivo Cargo.toml.Este ejemplo fue realizado para probar el bucle for.

Minijinja

Variables

En el archivo html debemos de poner entre "{{}}" los valores que queramos substituir. Por ejemplo:

<p>Nombre: {{nombre}}</p>
<p>Apellidos: {{apellidos}}</p>
<p>Edad:{{edad}}</p>

Comentarios

Para crear comentarios:

 {#Comentario#}

if/else

Ejemplo de como se usaría un if/else:

{% if nombre == 'Zacarias' %}
    <p>Se llama Zacarias</p>
{% else %}
    <p>No se llama Zacarias</p>
{% endif %}

bucle for

Ejemplo de como se haría un bucle:

{% for imagen in imagenes %}
    {{ imagen }}
    <br>
{% endfor %}

Documentación

Minijinja wkhtmltopdf crate wkhtmltopdf

Releases

No releases published

Packages

No packages published