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 --reloadEl 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