[Python] Generar PDF con FPDF y Descargarlo con FastAPI

Generar y servir PDFs es una funcion vital en cualquier backend de un sistema o app, ahora vamos a generar un PDF con la libreria FPDF y FastAPI para servirlo y descargarlo en un endpoint usando Python.

Ya hemos visto como devolver texto y JSON en FastAPI ahora vamos a devolver un archivo PDF que generamos en el servidor.

El PDF que vamos a generar es un simple PDF con un titulo.

Para descargar archivos con FastAPI vamos a usar FileResponse, esto nos va a descargar el archivo que especifiquemos.

Este archivo lo llame “fastapipdf1.py”

from fastapi import FastAPI
from fastapi.responses import FileResponse
from fpdf import FPDF

app = FastAPI()

@app.get("/mypdf")
def my_pdf():
    output_file = "holapdf.pdf"
    pdf = FPDF(orientation="P",unit="mm",format="A4")
    pdf.add_page()
    pdf.set_font("Arial","",20)
    pdf.text(x=10, y=10, txt="PDF DESDE FASTAPI")
    pdf.output(output_file)

    return FileResponse(output_file, media_type="application/pdf", filename=output_file)

Para ejecutar el script, vamos a la carpeta donde tenemos el script desde la terminal y ejecutamos.

uvicorn fastapipdf1:app --reload

El parametro –reload sirve para que si modificamos el archivo se recargue el uvicorn.

Para ejecutar el endpoint vamos al navegador: http://127.0.0.1:8000/mypdf

Y el resultado es el siguiente:

Si tienen dudas favor de escribir un comentario. Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading