From 88bfefc7825bf447e2abf25c33bbf212803a1f9f Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Mon, 13 Apr 2026 20:39:29 -0300 Subject: [PATCH] =?UTF-8?q?Fix:=20PDF=20generado=20din=C3=A1micamente=20co?= =?UTF-8?q?n=20dise=C3=B1o=20congruente=20a=20la=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MODELO_INGRESO.pdf | Bin 5512 -> 1912 bytes src/sections/HistoriaClinica.tsx | 135 ++++++++++++++++++++++++++----- 2 files changed, 115 insertions(+), 20 deletions(-) diff --git a/MODELO_INGRESO.pdf b/MODELO_INGRESO.pdf index 5bd3402c6381d4734672ec9c65cf2e3928bf7603..f71baa5bf0f6af692a763e741e58ad60e266ca4a 100644 GIT binary patch delta 1731 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 diff --git a/src/sections/HistoriaClinica.tsx b/src/sections/HistoriaClinica.tsx index 1b1a125..f3e5449 100644 --- a/src/sections/HistoriaClinica.tsx +++ b/src/sections/HistoriaClinica.tsx @@ -112,6 +112,25 @@ function calcularEstadoLaboratorio(parametro: string, valor: string): 'Normal' | return 'Normal'; } +function wrapText(text: string, font: any, fontSize: number, maxWidth: number): string[] { + const words = text.split(' '); + const lines: string[] = []; + let currentLine = ''; + + for (const word of words) { + const testLine = currentLine ? `${currentLine} ${word}` : word; + const testWidth = font.widthOfTextAtSize(testLine, fontSize); + if (testWidth > maxWidth && currentLine) { + lines.push(currentLine); + currentLine = word; + } else { + currentLine = testLine; + } + } + if (currentLine) lines.push(currentLine); + return lines; +} + export function HistoriaClinica({ internacion, paciente, @@ -311,28 +330,104 @@ export function HistoriaClinica({