diff --git a/apps/fronted/public/fonts/NotoSansSC.ttf b/apps/fronted/public/fonts/NotoSansSC.ttf new file mode 100644 index 0000000..4c4da76 Binary files /dev/null and b/apps/fronted/public/fonts/NotoSansSC.ttf differ diff --git a/apps/fronted/src/app/api/generate-pdf/route.ts b/apps/fronted/src/app/api/generate-pdf/route.ts index f6cb4b3..e99501d 100644 --- a/apps/fronted/src/app/api/generate-pdf/route.ts +++ b/apps/fronted/src/app/api/generate-pdf/route.ts @@ -1,7 +1,9 @@ -// import puppeteer from "puppeteer"; +import puppeteer from "puppeteer"; import { NextResponse } from "next/server"; -import puppeteer from "puppeteer-core"; +// import puppeteer from "puppeteer-core"; import chrome from "@sparticuz/chromium"; +import path from "path"; +import fs from "fs"; export async function POST(req: Request) { try { @@ -26,6 +28,19 @@ export async function POST(req: Request) { }); const page = await browser.newPage(); + const fontPath = path.join( + process.cwd(), + "public", + "fonts", + "NotoSansSC.ttf" + ); + const fontBuffer = fs.readFileSync(fontPath); + + await page.evaluate(async (fontBuffer) => { + const font = new FontFace("Noto Sans SC", fontBuffer); + await font.load(); + document.fonts.add(font); + }, fontBuffer); await page.setContent(content); diff --git a/apps/fronted/src/components/PdfExport.tsx b/apps/fronted/src/components/PdfExport.tsx index 2cf6e31..1d709fb 100644 --- a/apps/fronted/src/components/PdfExport.tsx +++ b/apps/fronted/src/components/PdfExport.tsx @@ -37,17 +37,6 @@ export function PdfExport() { const content = `
- @@ -55,6 +44,7 @@ export function PdfExport() { `; + const response = await fetch("/api/generate-pdf", { method: "POST", headers: {