|
@@ -1,3 +1,6 @@
|
|
|
+from pathlib import Path
|
|
|
+import site
|
|
|
+
|
|
|
from fastapi import APIRouter, UploadFile, File, Response
|
|
|
from fastapi import Depends, HTTPException, status
|
|
|
from starlette.responses import StreamingResponse, FileResponse
|
|
@@ -64,8 +67,18 @@ async def download_chat_as_pdf(
|
|
|
pdf = FPDF()
|
|
|
pdf.add_page()
|
|
|
|
|
|
- STATIC_DIR = "./static"
|
|
|
- FONTS_DIR = f"{STATIC_DIR}/fonts"
|
|
|
+ # When running in docker, workdir is /app/backend, so fonts is in /app/backend/static/fonts
|
|
|
+ FONTS_DIR = Path("./static/fonts")
|
|
|
+
|
|
|
+ # Non Docker Installation
|
|
|
+
|
|
|
+ # When running using `pip install` the static directory is in the site packages.
|
|
|
+ if not FONTS_DIR.exists():
|
|
|
+ FONTS_DIR = Path(site.getsitepackages()[0]) / "static/fonts"
|
|
|
+ # When running using `pip install -e .` the static directory is in the site packages.
|
|
|
+ # This path only works if `open-webui serve` is run from the root of this project.
|
|
|
+ if not FONTS_DIR.exists():
|
|
|
+ FONTS_DIR = Path("./backend/static/fonts")
|
|
|
|
|
|
pdf.add_font("NotoSans", "", f"{FONTS_DIR}/NotoSans-Regular.ttf")
|
|
|
pdf.add_font("NotoSans", "b", f"{FONTS_DIR}/NotoSans-Bold.ttf")
|