fix(pdf): make footer and all content stay compact and strictly within half-sheet area

This commit is contained in:
=
2026-09-21 22:37:39 -04:00
parent 9263e3486f
commit dc39eab3ae
5 changed files with 91 additions and 60 deletions
@@ -71,9 +71,12 @@ class PrescriptionPdfService {
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// Mitad superior de la hoja (máximo 5.5 pulgadas / 396 pt)
pw.Container(
height: 5.5 * PdfPageFormat.inch - 36,
pw.ConstrainedBox(
constraints: const pw.BoxConstraints(
maxHeight: 5.5 * PdfPageFormat.inch - 36,
),
child: pw.Column(
mainAxisSize: pw.MainAxisSize.min,
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// 1. Cabecera con Nombre del Doctor y Badge Superior de Hidalyx Med
@@ -219,28 +222,33 @@ class PrescriptionPdfService {
pw.SizedBox(height: 8),
// 3. Contenido de la Receta / Prescripción Médica
pw.Expanded(
child: pw.Container(
padding: const pw.EdgeInsets.symmetric(vertical: 4),
child: pw.Text(
prescriptionText.trim().isNotEmpty
? prescriptionText.trim()
: 'Sin prescripciones anotadas.',
style: pw.TextStyle(
font: regular,
fontSize: 10,
lineSpacing: 3,
color: PdfColor.fromHex('1E293B'),
),
pw.Container(
padding: const pw.EdgeInsets.symmetric(vertical: 6),
child: pw.Text(
prescriptionText.trim().isNotEmpty
? prescriptionText.trim()
: 'Sin prescripciones anotadas.',
style: pw.TextStyle(
font: regular,
fontSize: 10,
lineSpacing: 3,
color: PdfColor.fromHex('1E293B'),
),
),
),
pw.SizedBox(height: 6),
pw.SizedBox(height: 10),
// Línea sutil previa al pie de página
pw.Container(
height: 0.5,
color: PdfColor.fromHex('CBD5E1'),
),
pw.SizedBox(height: 5),
// 4. Pie de página con Contacto del Consultorio
if (generalContact.isNotEmpty) ...[
pw.Container(
padding: const pw.EdgeInsets.only(top: 4),
padding: const pw.EdgeInsets.only(top: 2),
child: pw.Text(
generalContact.toUpperCase(),
textAlign: pw.TextAlign.center,
@@ -252,10 +260,9 @@ class PrescriptionPdfService {
),
),
),
pw.SizedBox(height: 3),
],
pw.SizedBox(height: 3),
// Confirmación institucional
pw.Center(
child: pw.Text(