Allineare testo in colonne a larghezza fissa
Trasformi righe di testo strutturate in colonne ordinate a larghezza fissa senza contare manualmente gli spazi.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Fornisca le righe e il numero previsto di colonne: il formattatore misura il valore più largo in ogni posizione e completa ciascun campo fino a tale larghezza. Il risultato comprende larghezze riutilizzabili, campi completati e un blocco multilinea pronto da visualizzare. Le righe incoerenti vengono rifiutate per evitare risultati ambigui; la funzione è quindi adatta a log, report da terminale, e-mail di solo testo e documentazione.
Prepari le righe con un contratto di colonne chiaro
Inizi con un elenco di righe, ognuna composta da un elenco di campi di testo. Imposti column_count sul numero esatto di campi che ciascuna riga deve contenere. La prima riga può essere un’intestazione, ma non è obbligatoria né viene trattata in modo speciale: partecipa al calcolo come qualsiasi altro valore. Mantenga il testo esattamente come desidera visualizzarlo, comprese maiuscole e spazi interni intenzionali. Le stringhe vuote sono campi validi e vengono completate in base alla larghezza determinata dagli altri valori della colonna. Il conteggio esplicito protegge i dati assemblati da fonti diverse. Se una riga contiene campi in eccesso o in difetto, la richiesta fallisce con un errore che identifica la riga e il conteggio effettivo. In questo modo un valore mancante non sposta silenziosamente i campi successivi. Per risultati prevedibili, normalizzi tabulazioni e interruzioni di riga presenti nei singoli campi prima dell’invio.
Comprenda la misurazione e il riempimento
Il formattatore esamina separatamente ogni colonna e registra il maggior numero di caratteri trovato in quella posizione. Aggiunge quindi normali spazi in coda a ciascun campo fino alla larghezza registrata, oltre a uno spazio separatore fra campi adiacenti. La larghezza viene misurata in punti di codice Unicode anziché in unità UTF-16 di JavaScript, evitando di contare due volte i comuni caratteri supplementari. Il calcolo non formula ipotesi specifiche del terminale su segni combinati, tabulazioni, emoji o caratteri asiatici larghi, la cui resa dipende dal font. Lettere, numeri e punteggiatura ordinari risultano allineati in modo coerente con un carattere monospaziato. Anche l’ultimo campo viene completato, perché il contratto si applica a tutti i campi. La risposta espone sia gli array completati sia il testo unito, così Lei non deve analizzare nuovamente le righe formattate.
Utilizzi il risultato in flussi di testo affidabili
Scelga il formato di uscita più adatto alla fase successiva. Usi aligned_text quando Le serve un blocco completo per terminale, blocco di codice, report di solo testo o messaggio monospaziato. Usi aligned_rows per aggiungere prefissi, bordi, rientri o colori mantenendo il riempimento calcolato. L’array column_widths consente a un secondo sistema di formattare ulteriori righe con le stesse dimensioni. La trasformazione non elimina spazi, non ordina righe, non deduce intestazioni, non tronca contenuti e non cambia le maiuscole. È quindi sicura per identificatori e dati in cui gli spazi sono significativi. I limiti pubblicati impediscono un uso incontrollato della memoria. Poiché non intervengono rete, casualità, orologio o confronti locali, lo stesso input JSON produce sempre lo stesso output JSON. L’automazione tramite API costa $0.002 per richiesta.
Casi d'uso
Formattare report da terminale
Allinei nomi, stati, durate e identificatori prima di creare un report monospaziato facile da consultare.
Creare riepiloghi di solo testo
Produca tabelle leggibili per e-mail, ticket, documenti o chat che non possono usare tabelle HTML.
Convalidare esportazioni per righe
Individui campi mancanti o in eccesso generando al contempo un’anteprima stabile e allineata.
Domande frequenti
Quanto costa una richiesta?
Ogni richiesta API costa $0.002. La pagina può anche eseguire il formattatore localmente nel browser.
Che cosa accade se una riga ha un numero errato di campi?
La richiesta fallisce con un errore che indica la prima riga incoerente, il conteggio effettivo e quello atteso.
I valori vengono accorciati o modificati?
No. Il testo originale resta invariato; vengono aggiunti soltanto spazi finali di riempimento e separazione.
Il testo Unicode è supportato?
Sì. La larghezza usa punti di codice Unicode, senza stimare la resa particolare dei glifi larghi o combinati.
Viene completata anche l’ultima colonna?
Sì. Ogni campo raggiunge la larghezza del valore più ampio della colonna, compreso l’ultimo di ogni riga.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/text/text-column-align \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rows":[["Name","Role","City"],["Ada","Engineer","London"],["Grace Hopper","Admiral","New York"]],"column_count":3}'const res = await fetch("https://api.kit.forhosting.com/text/text-column-align", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rows": [
[
"Name",
"Role",
"City"
],
[
"Ada",
"Engineer",
"London"
],
[
"Grace Hopper",
"Admiral",
"New York"
]
],
"column_count": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/text-column-align",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rows": [
[
"Name",
"Role",
"City"
],
[
"Ada",
"Engineer",
"London"
],
[
"Grace Hopper",
"Admiral",
"New York"
]
],
"column_count": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/text-column-align", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rows":[["Name","Role","City"],["Ada","Engineer","London"],["Grace Hopper","Admiral","New York"]],"column_count":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rows":[["Name","Role","City"],["Ada","Engineer","London"],["Grace Hopper","Admiral","New York"]],"column_count":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/text-column-align", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"rows": [
[
"Name",
"Role",
"City"
],
[
"Ada",
"Engineer",
"London"
],
[
"Grace Hopper",
"Admiral",
"New York"
]
],
"column_count": 3
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.text_column_align",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_rows | 10000 |
max_columns | 100 |
max_field_chars | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |