Centrar texto en un ancho fijo
Centrar texto en un ancho da formato a cada línea por separado dentro de la columna que usted elija.
Ejecutar — gratis
Añade espacios normales a izquierda y derecha, conserva las líneas vacías y devuelve un bloque rectangular que puede copiar en un cartel, una terminal, un archivo README, un informe u otro diseño monoespaciado. Si hace falta una cantidad impar de espacios, el adicional se coloca a la derecha. La herramienta no recorta ni modifica las palabras y señala un error cuando el ancho elegido es menor que la línea más larga.
Elija un ancho que admita todas las líneas
Introduzca el texto exactamente como debe aparecer, incluidas las líneas vacías intencionadas y los espacios que ya formen parte del contenido. Después indique el ancho total en caracteres de cada fila de salida. Este valor debe ser igual o superior a la longitud de la línea más larga, pues la herramienta solo agrega espacios: no envuelve, acorta, recorta ni sustituye texto. Un ancho holgado crea márgenes visibles; uno igual a la línea más larga deja esa línea sin cambios. El recuento usa puntos de código Unicode, por lo que un emoji u otro carácter suplementario cuenta como un carácter, no como dos unidades UTF-16. Aun así, el ancho visual depende de la fuente y de la terminal: tabulaciones, marcas combinadas y glifos asiáticos anchos pueden ocupar un espacio distinto en pantalla. Para obtener carteles y consolas previsibles, utilice una fuente monoespaciada, cambie antes las tabulaciones por espacios y ajuste el ancho a la columna de destino. Si una línea no cabe, amplíe el ancho o edite el origen de forma consciente, sin esperar un truncamiento oculto.
Comprenda cómo se reparte el relleno
Cada línea de entrada recibe su propio cálculo. La herramienta resta la longitud de esa línea al ancho solicitado, coloca la mitad de los espacios disponibles a la izquierda y deja el resto a la derecha. Cuando el espacio disponible es par, ambos lados coinciden; cuando es impar, el lado derecho recibe el espacio adicional. Esta regla fija ofrece resultados deterministas y mantiene la alineación sin desplazamientos arbitrarios. Los caracteres existentes, incluidos los espacios iniciales y finales de una línea, cuentan en su longitud y no se alteran. Se reconocen finales de línea de Windows, macOS y Unix, mientras que el bloque devuelto usa un salto uniforme entre filas. Las líneas vacías se conservan y se convierten en filas formadas solo por espacios, algo útil en avisos enmarcados y encabezados separados deliberadamente. Como todas las filas alcanzan exactamente el ancho indicado, usted puede poner el resultado dentro de bordes ASCII, copiarlo a comentarios de código o combinarlo con otros contenidos fijos sin calcular los márgenes uno por uno.
Use el resultado en diseños de texto sin formato
Revise las líneas devueltas antes de pegarlas en su destino final, sobre todo si ese destino contrae los espacios en blanco. Los archivos de texto, bloques de código, terminales y secciones preformateadas de correo suelen conservar el relleno; los párrafos HTML normales y muchos editores enriquecidos pueden comprimir los espacios consecutivos. En esos casos, use un bloque preformateado u otro contenedor que respete el espacio. El resultado incluye un texto unido y una matriz de líneas individuales, de modo que una integración puede copiar el bloque completo o procesar las filas por separado. También informa del ancho elegido y del número de líneas para facilitar la verificación automática del diseño. La operación es determinista y se limita al texto facilitado: no consulta servicios de red, no introduce valores aleatorios ni añade marcas de tiempo. El precio base indicado es $0.002 cuando se ejecuta por un canal de pago, mientras que el navegador apto aplica la misma transformación pura. Si el ancho es insuficiente o un campo obligatorio tiene un tipo incorrecto, corrija la entrada y ejecute de nuevo.
Qué puede hacer con ella
Carteles para consola y terminal
Centre un título, un estado o un encabezado dentro del ancho conocido de un panel antes de añadir bordes u otros elementos.
Encabezados en README y bloques de código
Prepare títulos equilibrados para bloques Markdown, comentarios de código, registros de cambios y documentación que conserve espacios.
Informes de ancho fijo
Alinee etiquetas de varias líneas o portadas en una columna uniforme para informes, recibos, tiques y plantillas de texto.
Preguntas frecuentes
¿Qué ocurre si el relleno no se puede dividir por igual?
La izquierda recibe la mitad menor y la derecha el espacio adicional, por lo que la regla es estable en todas las líneas.
¿La herramienta envuelve las líneas que superan el ancho?
No. Devuelve un error si el ancho es menor que la línea más larga, evitando envolturas o pérdidas de datos silenciosas.
¿Se conservan las líneas vacías?
Sí. Cada línea vacía pasa a ser una fila que contiene exactamente la cantidad de espacios solicitada.
¿Seguirán visibles los espacios después de pegar el resultado?
Se conservan en texto simple, pero algunos entornos HTML y editores enriquecidos los contraen. Use allí un contexto preformateado.
¿Se mantienen mis espacios iniciales y finales?
Sí. Los espacios existentes forman parte de cada línea y solo se añaden los necesarios para alcanzar el ancho elegido.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/center-text \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"QUARTERLY REPORT\nRevenue overview","width":24}'const res = await fetch("https://api.kit.forhosting.com/str/center-text", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "QUARTERLY REPORT\nRevenue overview",
"width": 24
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/center-text",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "QUARTERLY REPORT\nRevenue overview",
"width": 24
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/center-text", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"QUARTERLY REPORT\\nRevenue overview","width":24}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"QUARTERLY REPORT\nRevenue overview","width":24}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/center-text", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "QUARTERLY REPORT\nRevenue overview",
"width": 24
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.center_text",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |