서버에서 생성
renderPdf, renderXlsx로 브라우저 없이 Node.js, Deno, Bun에서 PDF와 엑셀을 만들어 일괄 출력과 메일 첨부에 쓰는 방법입니다.
renderPdf와 renderXlsx는 브라우저 없이(Node, Deno, Bun, 워커) 레이아웃하고 파일을 씁니다. 글자는 PDF에 내장하는 트루타입 글꼴로 재기 때문에 줄바꿈이 같습니다. 일괄 출력, 예약 보고서, 메일 첨부에 쓰세요.
// Node 20+, Deno or Bun — no browser needed
import { writeFile } from 'node:fs/promises';
import { loadFonts, renderPdf, renderXlsx } from '@freereportjs/core';
const fonts = await loadFonts(['Nanum Gothic']); // TTF bytes (or read your own files)
const pdf = await renderPdf(definition, { rows }, { fonts, params: { user: 'batch' } });
await writeFile('sales.pdf', pdf);
await writeFile('sales.xlsx', await renderXlsx(definition, { rows }, { fonts, mode: 'form' }));