Exportação PDF
Exportação PDF
Seção intitulada “Exportação PDF”O Juca gera documentos PDF a partir de sessões de briefing usando jsPDF. O PDF é renderizado no lado do servidor como uma função pura e entregue por meio de um endpoint de API dedicado.
Como Funciona
Seção intitulada “Como Funciona”O pipeline de geração de PDF:
- O cliente solicita o PDF via
GET /api/export/pdf/[sessionId] - A rota de API autentica a requisição e carrega a sessão
generateBriefingPDF(input)processa os blocos da sessão em conteúdo PDF- O PDF é retornado como binário (
application/pdf)
Implementação
Seção intitulada “Implementação”O gerador é uma função pura em src/lib/pdf/generator.ts:
function generateBriefingPDF(input: BriefingPDFInput): Uint8Array { const doc = new jsPDF();
// Extrair blocos por tipo const diagnosis = blocks.find(b => b.type === 'diagnosis'); const precedents = blocks.filter(b => b.type === 'precedent'); const riskBalance = blocks.find(b => b.type === 'risk_balance'); const delivery = blocks.find(b => b.type === 'delivery');
// Renderizar seções com controle manual de posição Y let y = 20; // ... renderiza cada seção, chamando checkPage() para overflow // Usa doc.splitTextToSize(text, maxWidth) para quebra de texto
return new Uint8Array(doc.output('arraybuffer'));}Endpoint de API
Seção intitulada “Endpoint de API”GET /api/export/pdf/[sessionId]| Parâmetro | Tipo | Localização | Obrigatório |
|---|---|---|---|
sessionId | string | Caminho da URL | Sim |
Autenticação: Obrigatória. Usa auth() de src/lib/auth.
Resposta: Conteúdo binário application/pdf.
Futuro: PDF Consciente do Briefing
Seção intitulada “Futuro: PDF Consciente do Briefing”🚧 Funcionalidade Planejada — O PDF do v0.4 (#289) refletirá as seleções do usuário ao longo das 4 fases do Briefing. A estrutura do PDF se adaptará com base no modo de entrega (Síntese produz um resumo conciso; Parecer produz um layout de opinião formal).
🚧 Funcionalidade Planejada — Exportação em DOCX está planejada para o v0.5 (#158).