Files
scrollsmith/generatePDF.js
Madison Grubb a3c54b1c82
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/cron/ci Pipeline was successful
use sharp and improve prompting
2025-09-05 16:48:35 -04:00

32 lines
850 B
JavaScript

import puppeteer from "puppeteer";
import { dungeonTemplate } from "./dungeonTemplate.js";
import fs from 'fs/promises';
export async function generatePDF(data, outputPath = "dungeon.pdf") {
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
// Convert image to base64
const imageBuffer = await fs.readFile(data.map);
const base64Image = `data:image/png;base64,${imageBuffer.toString("base64")}`;
data.map = base64Image;
const html = dungeonTemplate(data);
await page.setContent(html, { waitUntil: "networkidle0" });
await page.pdf({
path: outputPath,
format: "A4",
landscape: true,
printBackground: true,
preferCSSPageSize: true
});
await browser.close();
console.log(`Dungeon PDF saved to ${outputPath}`);
}