Engines PDF
API comum: renderReportPdf(model, res, { reportDir, pdf }). Troque só o pacote do engine.
| Engine | Pacote | Quando usar |
|---|---|---|
| Puppeteer | @crystal-node/engine-puppeteer |
Apps Node genéricas; melhor fidelidade CSS moderna |
| wkhtmltopdf | @crystal-node/engine-wkhtmltopdf |
Ambientes com binário wkhtml já padronizado |
| WeasyPrint | @crystal-node/engine-weasyprint |
Pipeline Python / CSS paged media |
| Devbox | @crystal-node/engine-devbox |
Framework com res.pdf |
Exemplo Puppeteer
const reportEngine = require('@crystal-node/engine-puppeteer');
// equivalente via meta-pacote:
// const { reportEnginePuppeteer } = require('@crystal-node/runtime');
await reportEngine.renderReportPdf(model, res, {
reportDir: __dirname,
pdf: {
marginTop: 28,
marginBottom: 14,
marginLeft: 0,
marginRight: 0,
pageWidth: '215.9mm',
pageHeight: '279.4mm'
}
});
Guia técnico adicional (markdown no repo): engines-pdf.md.