From e19cdc76e0b58e763c94056d622c2a866a43ea42 Mon Sep 17 00:00:00 2001 From: ryan Date: Sat, 4 Apr 2026 23:33:46 +0000 Subject: [PATCH] fix: dynamic PDF height based on receipt content length Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/admin/src/components/pos/pos-receipt.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/admin/src/components/pos/pos-receipt.tsx b/packages/admin/src/components/pos/pos-receipt.tsx index 2625eb3..39bc39b 100644 --- a/packages/admin/src/components/pos/pos-receipt.tsx +++ b/packages/admin/src/components/pos/pos-receipt.tsx @@ -273,6 +273,10 @@ export async function downloadReceiptPDF(txnNumber?: string) { const el = document.getElementById('pos-receipt-print') if (!el) return + // Calculate height from actual content + const heightPx = el.scrollHeight + 16 // 16px padding + const heightMm = Math.ceil(heightPx * 0.265) + 8 // px to mm + margin + const html2pdf = (await import('html2pdf.js')).default html2pdf() .set({ @@ -280,7 +284,7 @@ export async function downloadReceiptPDF(txnNumber?: string) { filename: `receipt-${txnNumber ?? 'unknown'}.pdf`, image: { type: 'jpeg', quality: 0.95 }, html2canvas: { scale: 2, useCORS: true, width: 280 }, - jsPDF: { unit: 'mm', format: [72, 250], orientation: 'portrait' }, + jsPDF: { unit: 'mm', format: [72, heightMm], orientation: 'portrait' }, }) .from(el) .save()