commit bd61a47cea83285b5e9b0735e1fc31497f2b3da5 Author: 吳佩庭 Date: Mon Jul 14 12:49:11 2025 +0800 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/__pycache__/app.cpython-312.pyc b/__pycache__/app.cpython-312.pyc new file mode 100644 index 0000000..e375ff3 Binary files /dev/null and b/__pycache__/app.cpython-312.pyc differ diff --git a/app.py b/app.py new file mode 100644 index 0000000..496b3a7 --- /dev/null +++ b/app.py @@ -0,0 +1,27 @@ +from fastapi import FastAPI +from fastapi.staticfiles import StaticFiles +from pydantic import BaseModel +from reportlab.pdfgen import canvas +import uuid, os + +app = FastAPI() + +os.makedirs("static", exist_ok=True) +app.mount("/static", StaticFiles(directory="static"), name="static") + +class TextRequest(BaseModel): + content: str + +@app.post("/generate-pdf") +def generate_pdf(data: TextRequest): + filename = f"{uuid.uuid4()}.pdf" + filepath = os.path.join("static", filename) + + c = canvas.Canvas(filepath) + c.setFont("Helvetica", 12) + c.drawString(100, 750, data.content[:1000]) # 控制最多幾個字,否則會 overflow + c.save() + + return { + "url": f"/static/{filename}" + } diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e7caa4e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +fastapi +uvicorn +pydantic +reportlab +python-multipart