Expanda ligaduras tipográficas e corrija fi e fl
Um texto copiado de PDF, revista, ebook ou documento diagramado profissionalmente pode conter caracteres Unicode únicos que apenas se parecem com pares comuns de letras.
Executar grátis
Uma palavra com fi pode parecer correta na tela, mas não aparecer em uma busca exata por fi. Esta ferramenta transforma essas ligaduras tipográficas em letras comuns sem alterar palavras próximas, pontuação, espaçamento ou quebras de linha. O resultado fica mais confiável para pesquisar, indexar, comparar, citar e enviar a sistemas que esperam texto convencional.
Por que um texto visualmente correto pode ser difícil de pesquisar
Programas de tipografia às vezes substituem duas ou três letras adjacentes por um único glifo ligado. Isso ocorre com frequência em fi, fl, ff, ffi e ffl, cujas formas podem se encostar em uma fonte bem desenhada. Quando um PDF expõe o glifo como caractere de apresentação Unicode, copiar a página preserva a ligadura, e não as letras representadas. A palavra colada parece normal para uma pessoa, porém o software pode identificar outra sequência de pontos de código. Assim, uma busca literal por “file” talvez não encontre uma palavra copiada iniciada pelo caractere único fi. A divergência também prejudica índices, detecção de duplicatas, consultas em bancos de dados, pesquisas no terminal, acessibilidade e comparações. Esta função resolve especificamente esse problema: converte ligaduras compatíveis em sequências latinas comuns, mantém maiúsculas quando aplicável e preserva todos os demais caracteres, incluindo acentos, pontuação, tabulações, espaços e finais de linha.
O que a expansão altera e o que ela preserva
Informe o conteúdo no campo de texto; o resultado traz o texto expandido e a contagem de substituições. O algoritmo reconhece as formas Unicode de ff, fi, fl, ffi e ffl, além das duas formas históricas de st. Também desenvolve as ligaduras comuns AE e OE em maiúsculas e minúsculas, produzindo AE, ae, OE ou oe conforme o caso. Cada caractere reconhecido conta como uma substituição, mesmo quando vira três letras. A contagem ajuda a confirmar se o trecho colado realmente continha tipografia oculta. O processamento é determinístico e ocorre em uma única passagem: a mesma entrada sempre gera a mesma saída, sem um modelo de linguagem tentando adivinhar a intenção. A ferramenta não normaliza acentos, troca aspas, comprime espaços, corrige ortografia nem modifica travessões. Se o documento tiver erros de OCR em vez de ligaduras genuínas, eles permanecem visíveis para uma etapa separada de correção.
Como usar o texto limpo em buscas e fluxos documentais
A expansão funciona melhor logo após extrair o texto ou copiá-lo para a área de transferência e antes de indexar, comparar ou tokenizar. Para um trecho isolado, cole o conteúdo e use o resultado em uma pesquisa, anotação, gerenciador de referências ou arquivo de texto simples. Em um fluxo automatizado, aplique a função tanto aos documentos armazenados quanto às consultas recebidas quando qualquer lado puder vir de material diagramado. Essa consistência impede que uma palavra visualmente idêntica tenha representações distintas no índice e na consulta. O preço-base da API é US$ 0,002 por solicitação, e cada solicitação processa um item de texto. Como a transformação não depende de rede nem usa modelo probabilístico, ela também é adequada para testes repetíveis e limpeza de acervos. Preserve a fonte original quando a procedência for importante, pois a expansão altera intencionalmente pontos de código, embora costume manter a leitura. Faça normalização de aspas, limpeza de espaços, correção de OCR ou ajuste de caixa em operações separadas para manter cada mudança compreensível.
Casos de uso
Corrigir texto copiado de PDFs
Transforme caracteres ocultos fi, fl, ffi e ffl em letras comuns antes de pesquisar ou citar um trecho.
Preparar documentos para indexação
Normalize ligaduras antes de adicionar conteúdo acadêmico, jurídico ou editorial extraído a um índice literal.
Estabilizar comparações textuais
Remova diferenças de pontos de código causadas apenas pela tipografia antes de comparar texto diagramado e texto simples.
Perguntas frequentes
Quanto custa?
A API custa US$ 0,002 por solicitação. A versão para navegador executa localmente a mesma transformação determinística.
Quais ligaduras são expandidas?
São expandidas as formas ff, fi, fl, ffi, ffl e st, além das letras ligadas AE e OE em maiúsculas e minúsculas.
As sequências comuns fi e fl serão alteradas?
Não. Letras separadas já podem ser pesquisadas; somente ligaduras reconhecidas de um único caractere são substituídas.
A ferramenta corrige erros de OCR?
Não. Ela expande apenas ligaduras conhecidas e preserva letras reconhecidas incorretamente, espaços ausentes e outros erros de OCR.
A formatação e as quebras de linha são preservadas?
Sim. Fora das ligaduras compatíveis, o conteúdo volta inalterado, inclusive espaços, pontuação, acentos e quebras de linha.
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/str/expand-ligatures \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The office file is flexible."}'const res = await fetch("https://api.kit.forhosting.com/str/expand-ligatures", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The office file is flexible."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/expand-ligatures",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The office file is flexible."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/expand-ligatures", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The office file is flexible."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The office file is flexible."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/expand-ligatures", 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": "The office file is flexible."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.expand_ligatures",
"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.
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. |