Files
python_text2excel/app.py
2025-07-14 13:01:08 +08:00

38 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import uuid, os
app = FastAPI()
os.makedirs("static", exist_ok=True)
app.mount("/static", StaticFiles(directory="static"), name="static")
# ✅ 註冊中文字體(請確保字體檔案存在)
font_path = "NotoSansTC-Medium.ttf" # 或使用微軟系統內建msjh.ttc微軟正黑體
if os.path.exists(font_path):
pdfmetrics.registerFont(TTFont("MyFont", font_path))
font_name = "MyFont"
else:
font_name = "Helvetica" # fallback
class TextRequest(BaseModel):
content: str
@app.post("/generate-pdf")
def generate_pdf(data: TextRequest, request: Request):
filename = f"{uuid.uuid4()}.pdf"
filepath = os.path.join("static", filename)
c = canvas.Canvas(filepath)
c.setFont(font_name, 12)
c.drawString(100, 750, data.content[:1000])
c.save()
return {
"url": str(request.base_url) + f"static/{filename}"
}