PT EN
Voltar ao site

Formatos Suportados no Upload

Seu acervo raramente é só PDF: relatórios em Word, planilhas de execução, apresentações, páginas salvas em HTML — e tudo isso muitas vezes compactado em um ZIP. A página de Upload aceita documentos Office (DOCX, XLSX, PPTX) e HTML como arquivo, inclusive dentro de pacotes ZIP/TAR/GZ. Cada formato é extraído preservando a estrutura (seções, planilhas, slides) e segue pelo mesmo caminho de sempre: divisão em trechos, vetores semânticos, identificação de entidades, grafo e busca. Você envia o que tem, do jeito que tem.

Este guia detalha o que é aceito, os limites e as regras de rejeição. O fluxo geral de upload — contexto de destino, fila de lotes, acompanhamento — está no guia de upload e ingestão.


1. Formatos aceitos

GrupoExtensões
Documentopdf, docx
Planilhaxlsx
Apresentaçãopptx
Webhtml, htm
Texto/dadostxt, csv, json, xml, md, tsv, log
Pacoteszip, gz, gzip, tar, tar.gz, tgz (contendo qualquer formato acima)

Arquivo fora da lista é recusado com:

"Formato de arquivo não suportado: .<ext>. Formatos aceitos: PDF, DOCX, XLSX, PPTX, HTML, TXT, CSV, JSON, XML, MD, TSV e LOG."


2. Limites por formato

Estes são os valores padrão. O administrador pode ajustá-los na instalação pelas variáveis de ambiente indicadas.

LimiteValorDe onde vem
Upload (qualquer arquivo/requisição)256 MBLimite de corpo da requisição na borda da plataforma, alinhado ao limite de leitura em memória da mesma borda; na ingestão, o multipart é gravado em disco (spring.webflux.multipart, teto de 300 MB por parte)
PDFsem teto próprio — vale o limite geral de 256 MBO PDF é lido direto do arquivo, em acesso aleatório: um "inteiro teor" de 1.700+ páginas e 118 MB não passa pela memória da aplicação
DOCX25 MBdatta.document.max-docx-size-bytes (DATTA_MAX_DOCX_SIZE_BYTES, 26214400)
XLSX100 MBdatta.document.max-xlsx-size-bytes (104857600) — lido em fluxo contínuo, sem carregar a planilha inteira
PPTX60 MBdatta.document.max-pptx-size-bytes (62914560)
HTML10 MBdatta.document.max-html-size-bytes (10485760)
Texto extraído por documento4.000.000 caracteresdatta.document.max-text-length (DATTA_DOC_MAX_TEXT_LENGTH) — cobre um inteiro teor de ~1.700 páginas (≈ 3,3 milhões de caracteres); o excedente é truncado com aviso nos metadados
Conteúdo descomprimido de pacotes500 MB por pacoteProteção contra arquivos-bomba na extração

Excedeu o limite do formato? A mensagem é:

"O arquivo "<nome>" excede o limite de <N> MB para o formato <FORMATO>. Divida o conteúdo em arquivos menores e envie novamente."

Por que DOCX e PPTX têm teto menor? Porque a leitura desses dois formatos carrega o arquivo em memória. O XLSX usa leitura em fluxo contínuo (SAX) e por isso aceita arquivos bem maiores sem risco de esgotar a memória do serviço.


3. Regras de rejeição (segurança)

Toda validação acontece antes de o arquivo tocar o extrator, e a recusa volta como erro de validação (HTTP 422) com mensagem em português — nunca um rastro de erro técnico. As mensagens abaixo são as reais do sistema:

RegraMensagem
Macros (.docm, .xlsm, .pptm, .dotm, .xltm, .potm, .ppsm)"Arquivos com macros (.docm) não são aceitos por segurança. Salve o documento no formato equivalente sem macro (.docx, .xlsx ou .pptx) e envie novamente."
Macro embutida (arquivo .docx contendo vbaProject.bin)"O arquivo "<nome>" contém macros embutidas e não é aceito por segurança. Salve o documento sem macros e envie novamente."
Office legado (.doc, .xls, .ppt — binário OLE2)"O formato legado .doc não é suportado. Converta o arquivo para o formato Office atual (.docx, .xlsx ou .pptx) e envie novamente."
Conteúdo divergente da extensão (ex.: PDF renomeado para .docx)"O conteúdo do arquivo "<nome>" não corresponde ao formato <FORMATO> declarado pela extensão. Verifique o arquivo e envie novamente."
OLE2 renomeado para extensão OOXML"O arquivo "<nome>" está no formato Office legado (binário OLE2). Converta para o formato atual (.docx) e envie novamente."
HTML com conteúdo binário"O conteúdo do arquivo "<nome>" não parece ser HTML. Verifique o arquivo e envie novamente."
Container OOXML corrompido"O arquivo "<nome>" parece corrompido e não pôde ser validado. Gere o arquivo novamente e reenvie."
Arquivo vazio"O arquivo enviado está vazio."

Como funciona por baixo: a validação confere a extensão, depois os limites, depois os magic bytes (%PDF, a assinatura ZIP PK.. dos formatos Office atuais, a assinatura OLE2 do Office legado) e, por fim, o conteúdo do container Office — [Content_Types].xml mais a parte principal (word/, xl/ ou ppt/), inspecionando no máximo 500 entradas. As proteções globais contra arquivos-bomba nos formatos Office são razão mínima de descompressão 0.01, entrada máxima de 256 MB e no máximo 10.000 entradas — todas configuráveis pelas variáveis DATTA_OOXML_*.


4. Como cada formato vira seções

O texto extraído é dividido em seções, e são elas que orientam a divisão em trechos e as citações que a busca devolve.

FormatoSeções
DOCXCada heading (estilos Título/Heading 1–9) abre uma seção com o texto do heading como título. Tabelas entram linearizadas (células separadas por `\
XLSXCada planilha (aba) é uma seção, com o nome da aba como título. Cada linha vira uma linha de texto com os valores como exibidos (formatação aplicada), separados por tabulação. Leitura em fluxo contínuo — planilhas de centenas de milhares de linhas não estouram a memória (o texto além do limite é truncado com aviso).
PPTXCada slide é uma seção; o título do slide vira o título da seção (na falta dele, "Slide N"). As notas do apresentador entram no fim do texto do slide, com o prefixo "Notas do apresentador:".
HTMLPassa pelo mesmo extrator de conteúdo principal usado na ingestão por URL — menus, rodapés e anúncios saem, fica o artigo. Enviar um .html produz o mesmo texto que ingerir aquela página pela aba URL. Seção única.
PDFComportamento inalterado (extração de texto direta).
TXT/CSV/JSON/XML/MD/TSV/LOGSeção única "Conteúdo Principal" (UTF-8, com ISO-8859-1 como alternativa).

Depois da extração, nada muda em relação aos formatos antigos: divisão em trechos (200 palavras com sobreposição de 30), vetores semânticos automáticos, identificação de entidades com o modelo do contexto, gravação no grafo e nos índices, linhagem completa — e o arquivo original é armazenado com hash SHA-256, recuperável na tela do documento.

Identificação de entidades em documentos longos

A identificação de entidades não trunca mais o texto nos primeiros 10.000 caracteres. Documentos maiores que uma janela (DATTA_NER_WINDOW_CHARS, padrão 40.000 caracteres) são divididos em janelas alinhadas em quebras de parágrafo e analisados em paralelo controlado (DATTA_NER_CONCURRENCY, padrão 2 — o número baixo protege a cota por minuto do provedor de IA). As entidades e os relacionamentos das janelas são fundidos com deduplicação: mesmo tipo mais mesmo nome resultam em uma única entidade, e propriedades complementares são mescladas.

O custo de IA é limitado por documento: no máximo DATTA_NER_MAX_WINDOWS janelas (padrão 24, o equivalente a ~960 mil caracteres). Se o documento tem mais janelas que isso, elas são distribuídas uniformemente entre início, meio e fim, e o arquivo termina com o aviso "NER cobriu N de M trechos do documento (amostragem distribuída…)". Amplie DATTA_NER_MAX_WINDOWS quando a cobertura total compensar o custo.


5. Pacotes (ZIP/TAR/GZ)

Os formatos novos funcionam também dentro de pacotes, no upload em lote: cada arquivo processável extraído entra na mesma fila do hub de execuções. Caminhos maliciosos (zip-slip) são ignorados e o total descomprimido é limitado a 500 MB por pacote.

Exemplo prático — um ZIP com relatório, planilha e slides

  1. Você tem prestacao-contas-2026.zip com relatorio.docx (12 MB), execucao.xlsx (40 MB) e apresentacao.pptx (18 MB).
  2. Em ProcessarUpload, selecione o contexto de destino e envie o ZIP.
  3. A plataforma descompacta com segurança e cada arquivo entra na mesma fila de processamento, visível no grupo do lote.
  4. Ao final: o relatório virou seções por título, cada aba da planilha virou uma seção com as linhas como exibidas, e cada slide — inclusive as notas do apresentador — virou uma seção própria.
  5. Pesquise um termo do relatório: o resultado cita a seção de origem, e o arquivo original continua disponível na tela do documento.

6. Solução de problemas

SintomaCausaO que fazer
"Arquivos com macros (...) não são aceitos"Documento .docm/.xlsm/.pptmSalvar como .docx/.xlsx/.pptx (Arquivo → Salvar como) e reenviar
"O formato legado .doc não é suportado"Office 97–2003 (binário OLE2)Abrir no Word/Excel/PowerPoint e salvar no formato atual
"não corresponde ao formato declarado pela extensão"Arquivo renomeado (ex.: PDF com extensão .docx)Corrigir a extensão para o formato real
Documento entrou "plano", sem seçõesDOCX sem estilos de headingComportamento esperado (seção única); aplicar estilos de título melhora as citações
Texto da planilha truncadoLimite de 4.000.000 caracteres de texto extraídoDividir a planilha; o aviso fica nos metadados do documento
"excede o limite de N MB para o formato"Arquivo maior que o teto do formatoDividir o conteúdo; o administrador pode ajustar as variáveis DATTA_MAX_*_SIZE_BYTES
"O arquivo excede o tamanho máximo aceito pelo servidor (256MB)"Arquivo maior que o limite geral da bordaDividir o arquivo; o administrador pode subir o limite geral, mantendo alinhados o teto de corpo da requisição e o de leitura em memória
"NER cobriu N de M trechos do documento"Documento muito longo — a identificação de entidades amostrou janelas distribuídasComportamento esperado; ampliar DATTA_NER_MAX_WINDOWS para cobertura total
"Nenhum PDF disponível para este processo" (painel Processos)Documento ingerido antes do armazenamento de originais (o binário foi descartado)Reenviar o mesmo arquivo: a plataforma deduplica pelo texto e acrescenta o PDF/ZIP (arquitetura)