ForHosting KIT · PDF e documentos

Extrair texto de PDF por colunas na ordem de leitura

Quatro blocos embaralhados de uma página com duas colunas voltam como esquerda primeiro, esquerda segundo, direita primeiro e direita segundo. As colunas são detectadas por bordas esquerdas parecidas e lidas da esquerda para a direita, de cima para baixo. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve

A extração de texto de um PDF pode recuperar todas as palavras corretamente e ainda entregá-las em uma sequência inútil. Em páginas com duas ou mais colunas, uma simples ordenação vertical alterna entre parágrafos sem relação. Esta capacidade recebe blocos e caixas delimitadoras, identifica os que pertencem à mesma coluna, ordena as colunas da esquerda para a direita e os blocos de cima para baixo. O resultado inclui o texto reconstruído e toda a geometria ordenada para você inspecionar ou processar.

Por que a extração de PDF perde a ordem de leitura

Um PDF normalmente descreve onde os glifos são desenhados, e não a sequência semântica em que uma pessoa deve lê-los. Bibliotecas de extração podem devolver blocos na ordem interna dos objetos, na ordem de desenho ou em uma ordem vertical global que salta entre colunas. Um artigo em duas colunas pode virar o primeiro parágrafo esquerdo, o primeiro direito e depois o segundo esquerdo.

Envie cada bloco com texto, coordenada esquerda, coordenada superior, largura e altura. A capacidade usa essa geometria para inferir grupos com bordas esquerdas parecidas. Em seguida, dispõe as colunas da esquerda para a direita e ordena os blocos de cima para baixo.

Todas as coordenadas precisam usar o mesmo sistema da página, e `y` deve representar o topo do bloco.

Como a detecção de colunas permanece determinística

A associação a uma coluna depende da distância entre as coordenadas esquerdas dos blocos. Por padrão, a tolerância corresponde a um quarto da mediana das larguras positivas. Isso se adapta a escalas comuns e aceita pequenos recuos ou ruídos de extração dentro da coluna.

Um valor menor separa bordas ligeiramente diferentes; um valor maior reúne parágrafos recuados ou títulos com a coluna ao redor. Depois do agrupamento, as colunas seguem a média de sua posição esquerda. Dentro delas, os blocos seguem a posição superior, a esquerda e o índice original.

Esses critérios de desempate garantem resultados idênticos até quando caixas compartilham coordenadas. O algoritmo não usa rede, valores aleatórios, horário atual, OCR nem modelo de linguagem.

Como usar o resultado ordenado no fluxo documental

Guarde os arrays estruturados quando precisar de procedência, realce, sobreposição na página ou depuração; use o texto unido em busca, resumo, acessibilidade ou exportação. Processe uma página PDF por solicitação, pois coordenadas de páginas diferentes não são comparáveis sem normalização. Esta capacidade não analisa o arquivo PDF nem executa OCR: forneça blocos produzidos pelo seu extrator.

Ela também não identifica tabelas, barras laterais, títulos que atravessam colunas, notas de rodapé ou continuidade entre páginas.

Preparar artigos para pesquisa

Transforme blocos de revistas ou boletins em duas colunas em texto coerente antes da indexação.

Criar exportações acessíveis

Produza uma sequência previsível para leitores de tela ou conversão em documentos acessíveis.

Auditar um fluxo de extração

Mantenha caixas ordenadas e índices de origem para explicar a posição atribuída a cada parágrafo.

Esta capacidade aceita um arquivo PDF?

Não. Ela recebe blocos já extraídos de uma página PDF, incluindo as caixas delimitadoras.

Como as colunas são detectadas?

Blocos com coordenadas esquerdas suficientemente próximas são agrupados.

Quanto custa?

A mesma lógica determinística também roda no navegador como capacidade de nível A.

Posso enviar várias páginas de uma vez?

Envie uma página por vez. Posições de páginas diferentes não podem ser comparadas a menos que você as coloque antes em uma escala comum, então misturar páginas embaralharia as colunas.

A ferramenta reconhece tabelas, boxes laterais ou notas de rodapé?

Não. Ela só ordena o texto por coluna e pela altura na página. Tabelas, boxes, títulos que ocupam várias colunas e notas de rodapé não são deduzidos, então marque-os antes ou ajuste a tolerância de coluna e confira o resultado.

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.

POSThttps://api.kit.forhosting.com/pdf/text-extract-column-order

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/pdf/text-extract-column-order \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"blocks":[{"text":"Left heading","x":40,"y":40,"width":210,"height":20},{"text":"Right heading","x":320,"y":42,"width":210,"height":20},{"text":"Right body","x":322,"y":90,"width":208,"height":60},{"text":"Left body","x":42,"y":92,"width":208,"height":60}]}'
{
  "blocks": [
    {
      "text": "Left heading",
      "x": 40,
      "y": 40,
      "width": 210,
      "height": 20
    },
    {
      "text": "Right heading",
      "x": 320,
      "y": 42,
      "width": 210,
      "height": 20
    },
    {
      "text": "Right body",
      "x": 322,
      "y": 90,
      "width": 208,
      "height": 60
    },
    {
      "text": "Left body",
      "x": 42,
      "y": 92,
      "width": 208,
      "height": 60
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "pdf.text_extract_column_order",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_items10000
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Por que a extração de PDF perde a ordem de leitura

O campo `reading_order` mantém a geometria original e o índice de origem, permitindo que você confira cada posição sem depender de uma transformação opaca.

Como a detecção de colunas permanece determinística

Para geometrias incomuns, informe `column_tolerance`.

Como usar o resultado ordenado no fluxo documental

A resposta apresenta visões complementares da mesma decisão. `columns` mostra cada coluna detectada e seus blocos ordenados. `reading_order` transforma as colunas na sequência exata para a próxima etapa. `text` junta os conteúdos com um separador configurável; o padrão é uma linha em branco para preservar parágrafos. Quando essas estruturas forem importantes, classifique-as antes ou ajuste `column_tolerance` e confira as associações retornadas.

O que acontece se nenhum bloco for enviado?

A solicitação falha com `invalid_input`, pois não é possível inferir a ordem de leitura sem blocos de texto.

Qual sistema de coordenadas devo usar?

Qualquer sistema consistente por página funciona, desde que `x` seja a esquerda e `y` o topo de todos os blocos.

Ver a documentação completa do KIT →