diff --git a/app/Empresas/fichaAvaliacao.tsx b/app/Empresas/fichaAvaliacao.tsx index 3cafc90..0d04e0f 100644 --- a/app/Empresas/fichaAvaliacao.tsx +++ b/app/Empresas/fichaAvaliacao.tsx @@ -223,106 +223,204 @@ const gerarPDFAvaliacao = async () => { const valor = respostas[p.id]; linhasTabelaHtml += ` - ${idx + 1} - ${p.texto} - ${valor === 5 ? 'X' : ''} - ${valor === 4 ? 'X' : ''} - ${valor === 3 ? 'X' : ''} - ${valor === 2 ? 'X' : ''} - ${valor === 1 ? 'X' : ''} + ${idx + 1} + ${p.texto} + ${valor === 5 ? 'X' : ''} + ${valor === 4 ? 'X' : ''} + ${valor === 3 ? 'X' : ''} + ${valor === 2 ? 'X' : ''} + ${valor === 1 ? 'X' : ''} `; }); const dataHoje = new Date().toLocaleDateString('pt-PT'); - // Adicionamos Date.now() para garantir que o nome é sempre único e o sistema não usa cache const timestamp = Date.now(); + // Resolve o asset do Expo de forma nativa e sem queixas do TS + const assetLogo = Asset.fromModule(require('../../assets/images/epvclogo.png')); + await assetLogo.downloadAsync(); + const logoEscolaUri = assetLogo.localUri || assetLogo.uri; + const html = ` - - - - - - - - - -
EPVC.FI.08/1Aprovado: 01/09/2016
-

Escola Profissional de Vila do Conde

-

CURSO PROFISSIONAL TÉCNICO/A DE INFORMÁTICA DE GESTÃO

-

FICHA DE AVALIAÇÃO FINAL DO ESTÁGIO

-
-
- Estagiário: ${alunoNome}     Ano Letivo: 2025/2026

- Instituição: __________________________________________________________________________ +
+ + + + + + + +
+ ${logoEscolaUri ? `` : ''} + +

Escola Profissional de Vila do Conde

+

CURSO PROFISSIONAL TÉCNICO/A DE INFORMÁTICA DE GESTÃO

+

FICHA DE AVALIAÇÃO FINAL DO ESTÁGIO

+
+ ${imgAppB64 ? `` : ''} +
+ +
+ + + + + + + + +
Estagiário: ${alunoNome}Ano Letivo: 2025/2026
Instituição: __________________________________________________________________________
+
+ + + + + + + + + + + + + + + ${linhasTabelaHtml} + +
#Parâmetros de AvaliaçãoExcelente
(5)
Muito Bom
(4)
Bom
(3)
Médio
(2)
Insuficiente
(1)
+ +

+ Pelas competências demonstradas durante o estágio de Formação em Contexto de Trabalho, propomos que seja atribuída ao estagiário a classificação de  ${notaFinal}  valores. +

+ +

Observações:

+
+ ${observacoes.trim() ? observacoes.replace(/\n/g, '
') : 'Nenhum comentário adicional registado.'} +
+ +

+ Vila do Conde, ${dataHoje} +

+ + + + + + +
+
+
O Formador acompanhante
+
+
+
O Monitor de estágio
+
+
- - - - - - - - - - - - - - ${linhasTabelaHtml} - -
#Parâmetros de Avaliação54321
+ -

- Pelas competências demonstradas durante o estágio de Formação em Contexto de Trabalho, propomos que seja atribuída ao estagiário a classificação de ${notaFinal} valores. -

- -

Observações:

-
${observacoes}
- -

- Escola Profissional de Vila do Conde, ${dataHoje} -

- - - - - - -
O Formador acompanhante
O Monitor de estágio
`; const { uri } = await Print.printToFileAsync({ html }); - // O truque está aqui: incluímos o timestamp no nome do ficheiro final - const safeName = alunoNome.replace(/\s/g, '_'); - const finalPath = `${FileSystem.documentDirectory}Avaliacao_${safeName}_${timestamp}.pdf`; + const safeName = alunoNome.replace(/[^a-zA-Z0-9]/g, '_'); + const finalPath = `${FileSystem.documentDirectory}Ficha_Avaliacao_${safeName}_${timestamp}.pdf`; await FileSystem.moveAsync({ from: uri, to: finalPath }); - await Sharing.shareAsync(finalPath); + await Sharing.shareAsync(finalPath, { mimeType: 'application/pdf', UTI: 'com.adobe.pdf' }); + } catch (e) { - Alert.alert('Erro', 'Falha ao gerar o documento.'); + Alert.alert('Erro', 'Não foi possível compilar o documento.'); } finally { setGerandoPDF(false); } diff --git a/assets/images/epvclogo.png b/assets/images/epvclogo.png new file mode 100644 index 0000000..a3f40ac Binary files /dev/null and b/assets/images/epvclogo.png differ