Divida texto em colunas equilibradas
Divida um bloco de texto no número escolhido de colunas equilibradas sem contar, recortar ou reorganizar linhas manualmente.
Executar grátis
O resultado mantém todas as linhas na ordem original, preserva espaços vazios intencionais e retorna tanto a lista de linhas de cada coluna quanto um texto pronto para exibição. É útil para programas, listas, roteiros, etiquetas e qualquer material organizado por linhas que precise de uma apresentação lado a lado limpa. A mesma operação determinística pode ser executada no navegador ou automatizada pela API.
Transforme uma lista longa em um layout equilibrado
Cole o texto completo e escolha quantas colunas a apresentação final precisa ter. O divisor trata o conteúdo como uma sequência ordenada de linhas e reparte essa sequência em grupos contíguos cujos tamanhos diferem em no máximo uma linha. Quando a divisão não é exata, as primeiras colunas recebem as linhas restantes. Por exemplo, sete linhas divididas em três colunas formam grupos de três, duas e duas. Isso torna o resultado previsível e evita o desequilíbrio visual provocado pela concentração de todas as sobras na última coluna. Cada coluna retornada inclui sua posição iniciada em um, uma lista das linhas individuais e um texto unido por quebras de linha. Use a lista ao renderizar elementos ou células e o texto ao inserir uma coluna inteira em um campo simples. A ordem de leitura original permanece intacta da primeira à última coluna, sem classificação nem interpretação do material.
Entenda como linhas e espaços vazios são tratados
Os limites são reconhecidos quando a entrada usa quebras Unix, terminações Windows ou antigos separadores de retorno de carro. A saída normaliza o texto combinado de cada coluna com quebras de linha, oferecendo aos scripts um resultado estável entre sistemas operacionais. Linhas vazias têm significado e são preservadas como strings vazias; elas contam no equilíbrio porque removê-las poderia alterar parágrafos, versos, formulários ou notas cuidadosamente espaçadas. Até um texto vazio representa uma linha vazia, de acordo com o comportamento consistente da divisão de campos de texto. O número solicitado de colunas também é respeitado exatamente. Se você pedir mais colunas do que linhas, as adicionais serão retornadas com lista e texto vazios, sem redução silenciosa. Essa exatidão ajuda quando o layout externo já possui uma quantidade fixa de painéis. Nenhuma palavra é quebrada, medida, hifenizada ou movida entre linhas: prepare previamente qualquer ajuste desejado.
Renderize, exporte ou automatize o resultado com segurança
Em uma interface lado a lado, percorra as colunas retornadas em ordem e coloque cada uma em um contêiner de largura igual. Dentro da coluna, renderize as linhas da lista para manter fileiras vazias explícitas ou exiba o texto em um elemento pré-formatado. Um fluxo de impressão pode mapear a mesma estrutura para colunas de página, etiquetas, cartões de apoio ou um modelo de documento. Como o algoritmo é determinístico e não usa rede, valores aleatórios nem carimbos de data e hora, entradas idênticas sempre produzem saídas idênticas. Isso atende a sistemas de build, processos editoriais, testes repetíveis e transformações em cache. A validação é rigorosa: o texto deve ser uma string e a quantidade de colunas deve ser um inteiro igual ou superior a um. Valores inválidos falham em vez de serem arredondados ou presumidos. Para trabalhos rápidos, use o navegador; pela API, cada solicitação custa US$ 0,002 quando a transformação fizer parte de um processo automatizado.
Casos de uso
Formate um programa de evento
Divida uma lista ordenada de palestrantes ou sessões em blocos equilibrados para um programa compacto impresso ou exibido na tela.
Crie uma lista de tarefas em várias colunas
Converta tarefas organizadas por linhas em uma quantidade fixa de painéis, mantendo cada item e sua sequência original.
Prepare layouts editoriais
Envie grupos equilibrados de linhas para um modelo de documento, gerador de etiquetas, site estático ou apresentação.
Perguntas frequentes
Como as linhas restantes são distribuídas?
Os tamanhos diferem em no máximo uma linha. Quando a divisão não é exata, cada uma das primeiras colunas recebe uma linha adicional.
As linhas vazias são preservadas?
Sim. Elas permanecem como strings vazias e contam como linhas, preservando o espaçamento entre parágrafos e as lacunas intencionais.
O que acontece se eu solicitar mais colunas do que linhas?
A quantidade solicitada é retornada. Colunas sem linhas atribuídas contêm uma lista de linhas vazia e um texto vazio.
A ferramenta ajusta linhas longas a uma largura?
Não. Ela apenas equilibra as linhas existentes; não mede a largura visível, quebra palavras, hifeniza nem altera o texto.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. O mesmo divisor determinístico também pode ser executado diretamente no navegador.
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/text/split-columns \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf","column_count":3}'const res = await fetch("https://api.kit.forhosting.com/text/split-columns", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/split-columns",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/split-columns", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Alpha\\nBravo\\nCharlie\\nDelta\\nEcho\\nFoxtrot\\nGolf","column_count":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf","column_count":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/split-columns", 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
{
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.split_columns",
"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_tokens | 20000 |
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. |