Recebeu um ODT e não abre?
ODT é o formato de texto do LibreOffice e do OpenOffice — comum em órgãos públicos, universidades e em quem usa software livre, mas que trava em muito computador por aí. A conversão para PDF resolve na raiz: o documento vira um arquivo universal, com a formatação preservada, que abre em qualquer navegador ou celular.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
De onde vem tanto ODT
O Brasil público adotou software livre em peso: prefeituras, universidades federais e repartições produzem documentos no LibreOffice há décadas, e o resultado circula em ODT. Editais, minutas, declarações e ofícios chegam nesse formato à caixa de entrada de quem só tem o Office da Microsoft — ou só o celular. O arquivo não está quebrado; ele só fala um dialeto que nem todo programa entende.
PDF: a saída que não exige instalar nada
Convertido em PDF, o documento abre onde o destinatário estiver — navegador, celular, tablet — sem instalar LibreOffice nem depender de conversão improvisada que bagunça a formatação. Margens, fontes, tabelas e numeração atravessam a conversão fiéis ao original, porque o motor usado é da mesma família de escritório que criou o formato. O ODT continua intacto; o PDF é a versão de distribuição.
Custo, limites e situação atual
Preço publicado: US$ 0,052 por chamada mais US$ 0,003 por página — um ofício de 3 páginas custa US$ 0,061. Os limites por arquivo são 25 MB e 200 páginas. Sobre o momento, sem enrolação: esta capacidade está em fase de implantação e ainda não aceita execuções. O preço e os limites desta página já são os definitivos para a abertura, então dá para planejar a integração desde já.
Casos de uso
Declaração da prefeitura que o banco pediu
Carlos Eduardo Souza recebeu da prefeitura uma declaração em ODT e o banco só aceita PDF no portal. Convertido, o documento subiu na hora — sem instalar programa novo por causa de um arquivo só.
Edital da universidade distribuído à turma
Um grupo de estudo baixa o edital de bolsas publicado em ODT pela universidade federal e o converte em PDF antes de repassar no grupo de WhatsApp. Todo mundo abre no celular, sem pergunta de “que arquivo é esse?”.
Minuta de cliente do setor público
A TecnoSul Soluções Digitais ME atende uma autarquia que envia minutas em ODT. O fluxo interno converte cada arquivo recebido em PDF automaticamente, e a equipe comercial lê tudo no navegador, sem fricção de formato.
Trabalho feito no LibreOffice, entregue em PDF
Uma estudante que usa Linux escreve a monografia no LibreOffice e converte o ODT final em PDF para a submissão — a banca recebe o documento com a formatação exata, sem saber nem precisar saber em que editor nasceu.
Perguntas frequentes
Preciso ter LibreOffice ou OpenOffice instalado?
Não — essa é a graça. A conversão acontece no serviço, via API; você envia o ODT e recebe o PDF, sem instalar editor nenhum.
Planilhas ODS e apresentações ODP também entram aqui?
Não; esta capacidade é específica para documentos de texto ODT. Planilhas e apresentações têm caminhos próprios de conversão no catálogo.
A formatação do documento original se mantém?
Sim: margens, fontes, tabelas, cabeçalhos e numeração são preservados. O motor de conversão é da mesma linhagem de escritório que define o formato ODT.
Converter um ofício de 3 páginas me custa quanto?
US$ 0,052 + 3 × US$ 0,003 = US$ 0,061. Pagamento por uso, em dólar, sem plano mensal — quem converte um arquivo por semestre paga centavos por semestre.
Documentos oficiais que envio podem vazar?
O arquivo fica no serviço somente durante o processamento e a janela para baixar o resultado; depois é excluído. Sem cópia, sem inspeção — conforme a LGPD.
Por que a página existe se ainda não executa?
Porque preço e limite publicados antes valem mais que promessa vaga: a capacidade está em implantação, e o que está escrito aqui é o compromisso para quando abrir.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/doc/odt-to-pdf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/doc/odt-to-pdf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/odt-to-pdf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/odt-to-pdf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/odt-to-pdf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.odt_to_pdf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 200 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
413 | input_too_large | A entrada passou do tamanho máximo desta tarefa. Confira os limites publicados. |