fix(pdf): letter page with content constrained strictly to top half (media carta vertical)

This commit is contained in:
=
2026-09-21 19:07:37 -04:00
parent 7791fe9bc3
commit 9263e3486f
4 changed files with 71 additions and 31 deletions
@@ -28,13 +28,14 @@ class InsuranceAuthPdfService {
final pdf = pw.Document(title: 'Autorización de seguro - $patientName');
final formattedDate = DateFormat('dd/MM/yyyy').format(date ?? DateTime.now());
// Formato Media Carta Vertical (5.5 x 8.5 pulgadas / 396 x 612 pt):
// Margen equilibrado de media pulgada (36 pt) a los lados y 20 pt vertical
// Formato Carta Vertical (8.5 x 11.0 pulgadas / 612 x 792 pt):
// Todo el contenido abarca estrictamente la mitad superior de la hoja (5.5 pulgadas / 396 pt),
// dejando la mitad inferior libre para corte o papel pre-cortado.
const pageFormat = PdfPageFormat(
5.5 * PdfPageFormat.inch,
8.5 * PdfPageFormat.inch,
marginLeft: 36,
marginRight: 36,
11.0 * PdfPageFormat.inch,
marginLeft: 54,
marginRight: 54,
marginTop: 20,
marginBottom: 20,
);
@@ -70,6 +71,12 @@ class InsuranceAuthPdfService {
pageFormat: pageFormat,
build: (pw.Context context) {
return pw.Column(
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,
child: pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// 1. Cabecera con Nombre del Doctor y Badge Sutil de Hidalyx Med
@@ -338,6 +345,9 @@ class InsuranceAuthPdfService {
),
),
],
),
),
],
);
},
),
@@ -24,13 +24,14 @@ class PrescriptionPdfService {
final pdf = pw.Document(title: 'Receta Médica - $patientName');
final formattedDate = DateFormat('dd/MM/yyyy').format(date ?? DateTime.now());
// Formato Media Carta Vertical (5.5 x 8.5 pulgadas / 396 x 612 pt):
// Margen equilibrado de media pulgada (36 pt) a los lados y 20 pt vertical
// Formato Carta Vertical (8.5 x 11.0 pulgadas / 612 x 792 pt):
// Todo el contenido abarca estrictamente la mitad superior de la hoja (5.5 pulgadas / 396 pt),
// dejando la mitad inferior libre para corte o papel pre-cortado.
const pageFormat = PdfPageFormat(
5.5 * PdfPageFormat.inch,
8.5 * PdfPageFormat.inch,
marginLeft: 36,
marginRight: 36,
11.0 * PdfPageFormat.inch,
marginLeft: 54,
marginRight: 54,
marginTop: 20,
marginBottom: 20,
);
@@ -67,6 +68,12 @@ class PrescriptionPdfService {
pageFormat: pageFormat,
build: (pw.Context context) {
return pw.Column(
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,
child: pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// 1. Cabecera con Nombre del Doctor y Badge Superior de Hidalyx Med
@@ -261,6 +268,9 @@ class PrescriptionPdfService {
),
),
],
),
),
],
);
},
),
@@ -23,13 +23,14 @@ class DepartmentReferralPdfService {
final pdf = pw.Document(title: 'Referir a Departamento');
final formattedDate = DateFormat('dd/MM/yyyy').format(date ?? DateTime.now());
// Formato Media Carta Vertical (5.5 x 8.5 pulgadas / 396 x 612 pt):
// Margen equilibrado de media pulgada (36 pt) a los lados y 20 pt vertical
// Formato Carta Vertical (8.5 x 11.0 pulgadas / 612 x 792 pt):
// Todo el contenido abarca estrictamente la mitad superior de la hoja (5.5 pulgadas / 396 pt),
// dejando la mitad inferior libre para corte o papel pre-cortado.
const pageFormat = PdfPageFormat(
5.5 * PdfPageFormat.inch,
8.5 * PdfPageFormat.inch,
marginLeft: 36,
marginRight: 36,
11.0 * PdfPageFormat.inch,
marginLeft: 54,
marginRight: 54,
marginTop: 20,
marginBottom: 20,
);
@@ -65,6 +66,12 @@ class DepartmentReferralPdfService {
pageFormat: pageFormat,
build: (pw.Context context) {
return pw.Column(
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,
child: pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// 1. Cabecera con Nombre del Doctor y Badge Sutil de Hidalyx Med
@@ -210,6 +217,9 @@ class DepartmentReferralPdfService {
),
),
],
),
),
],
);
},
),
@@ -23,13 +23,14 @@ class DoctorReferralPdfService {
final pdf = pw.Document(title: 'Referir a Doctor (a)');
final formattedDate = DateFormat('dd/MM/yyyy').format(date ?? DateTime.now());
// Formato Media Carta Vertical (5.5 x 8.5 pulgadas / 396 x 612 pt):
// Margen equilibrado de media pulgada (36 pt) a los lados y 20 pt vertical
// Formato Carta Vertical (8.5 x 11.0 pulgadas / 612 x 792 pt):
// Todo el contenido abarca estrictamente la mitad superior de la hoja (5.5 pulgadas / 396 pt),
// dejando la mitad inferior libre para corte o papel pre-cortado.
const pageFormat = PdfPageFormat(
5.5 * PdfPageFormat.inch,
8.5 * PdfPageFormat.inch,
marginLeft: 36,
marginRight: 36,
11.0 * PdfPageFormat.inch,
marginLeft: 54,
marginRight: 54,
marginTop: 20,
marginBottom: 20,
);
@@ -65,6 +66,12 @@ class DoctorReferralPdfService {
pageFormat: pageFormat,
build: (pw.Context context) {
return pw.Column(
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,
child: pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.stretch,
children: [
// 1. Cabecera con Nombre del Doctor y Badge Sutil de Hidalyx Med
@@ -210,6 +217,9 @@ class DoctorReferralPdfService {
),
),
],
),
),
],
);
},
),