From 8cf2c23774cf38506245d4be535ed6d59f72c9eb Mon Sep 17 00:00:00 2001 From: Rodrigo Martins Date: Mon, 21 Apr 2025 21:07:06 -0300 Subject: [PATCH] tenta fix pdfservice.js --- src/server/services/PdfService.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/server/services/PdfService.ts b/src/server/services/PdfService.ts index acbd5a4..d911937 100644 --- a/src/server/services/PdfService.ts +++ b/src/server/services/PdfService.ts @@ -353,11 +353,21 @@ export class PdfService { fs.readFile(timesItalicPath).catch(() => null), fs.readFile(timesBoldItalicPath).catch(() => null), ]); + // Se algum arquivo foi encontrado mas está vazio, lança erro explícito + if ((timesPath && times !== null && (!Buffer.isBuffer(times) || times.length === 0)) || + (timesBoldPath && timesBoldBuf !== null && (!Buffer.isBuffer(timesBoldBuf) || timesBoldBuf.length === 0)) || + (timesItalicPath && timesItalicBuf !== null && (!Buffer.isBuffer(timesItalicBuf) || timesItalicBuf.length === 0)) || + (timesBoldItalicPath && timesBoldItalicBuf !== null && (!Buffer.isBuffer(timesBoldItalicBuf) || timesBoldItalicBuf.length === 0))) { + throw new Error('Arquivo de fonte Times New Roman encontrado mas está vazio ou corrompido.'); + } if (times && Buffer.isBuffer(times) && times.length > 0) font = await pdfDoc.embedFont(times); if (timesBoldBuf && Buffer.isBuffer(timesBoldBuf) && timesBoldBuf.length > 0) fontBold = await pdfDoc.embedFont(timesBoldBuf); if (timesItalicBuf && Buffer.isBuffer(timesItalicBuf) && timesItalicBuf.length > 0) fontItalic = await pdfDoc.embedFont(timesItalicBuf); if (timesBoldItalicBuf && Buffer.isBuffer(timesBoldItalicBuf) && timesBoldItalicBuf.length > 0) fontBoldItalic = await pdfDoc.embedFont(timesBoldItalicBuf); - } catch { /* fallback para Times padrão */ } + } catch (err) { + console.error('Erro ao carregar fontes Times New Roman:', err); + font = null; fontBold = null; fontItalic = null; fontBoldItalic = null; + } if (!font) font = await pdfDoc.embedFont(StandardFonts.TimesRoman); if (!fontBold) fontBold = await pdfDoc.embedFont(StandardFonts.TimesBold); if (!fontItalic) fontItalic = await pdfDoc.embedFont(StandardFonts.TimesItalic);