Command Palette

Search for a command to run...

O que volta de um PDF é texto, não layout

O que volta de um PDF é texto, não layout

T
Toolz Team
|Oct 21, 2026|18 min ler
Prefira Toolz.dev no Google

Parte da coleção Ferramentas de PDF

PDF to Word

Turn a PDF into an editable .docx in your browser. The text comes back as paragraphs you can edit in Word, Pages, LibreOffice or Google Docs. Nothing is uploaded.

Use o PDF to Word

Converti um relatório de duas páginas para o Word para verificar algo, e o segundo parágrafo voltou assim:

A receita aumentou no terceiro número de funcionários cresceu quatro, um quarto atrás de dois em apoio. A contratação de grandes renovações foi assinada no plano para o quarto trimestre de agosto. Margem mantida plana. permanece inalterado em seis funções.

Duas colunas de prosa perfeitamente ordinária, lidas na sarjeta linha por linha, então cada frase é dividida na sua ao lado. Nada foi quebrado. O conversor fez exatamente o que um conversor pode fazer e a lacuna entre isso e o que a frase "PDF to Word" promete é o assunto completo deste guia. Cada saída citada abaixo veio de executar a conversão, não de descrevê-la.

tl;dr: Um PDF armazena glifos nas coordenadas. Ele não armazena parágrafos, colunas, tabelas ou títulos, portanto, um conversor deve inferi-los das posições, e algumas dessas inferências estão erradas de uma maneira que você pode prever. Medido em um relatório de teste: duas colunas intercaladas linha por linha, uma mesa de quatro linhas achatada para uma linha lendo "Região Q2 Q3 EMEA 412 455 Amer 388 401 APAC 120 166", um título fundido no parágrafo abaixo dele, e uma página sem camada de texto não produziu absolutamente nada. O que você obtém de volta é uma prosa editável em ordem de página, que para a maioria dos empregos é o que você queria. o conversor de pdf para word Faz isso no navegador, para que o documento não seja carregado.

O que é armazenado dentro de um PDF?

Instruções para pintar uma página, não um documento.

Um fluxo de conteúdo do PDF diz coisas como "defina essa fonte nesse tamanho, mude para x 60, y 720, mostre esses glifos". o especificação em si É uma descrição de um modelo de pintura, e os operadores de texto sentam-se ao lado dos que desenham linhas e preenchimento de formas. Não há nenhum objeto no arquivo que signifique "parágrafo"; nenhum objeto que signifique "esta é uma tabela". O formato foi projetado para que uma página seja impressa de forma idêntica em todos os lugares, e isso é possível descrever a página como marcas e não como conteúdo.

Portanto, um conversor recebe uma lista de execuções posicionadas. pdf.js, o analisador em que é executado, os devolve exatamente como a página os desenha. No arquivo de teste, a primeira página produziu 34 deles e a página dois produziu 4. Cada execução é uma string com um X, A Y, uma largura e uma altura de fonte, e a ordem em que chegam é a ordem em que a página foi sorteada, que não é necessariamente a ordem em que você os leria.

Tudo o que um documento do Word precisa e que um PDF não possui, o conversor precisa reconstruir a partir desses quatro números. Essa reconstrução é o que se segue, incluindo em todos os lugares que dá errado.

Como um conversor reconstrui parágrafos a partir de coordenadas?

em duas passagens, com um limite em cada.

Os grupos de primeira passagem são executados em linhas por linha de base: execuções cujos valores Y ficam dentro de meia altura de fonte um do outro são uma linha. O segundo agrupa as linhas em parágrafos pela lacuna vertical entre eles. Uma lacuna maior que cerca de 1,45 vezes o espaçamento usual de linhas inicia um novo parágrafo, onde "usual" é a lacuna mediana nessa página em vez de um número fixo, de modo que a regra se adapta a um documento definido em 9 pontos ou 14 pontos.

Há um terceiro limite dentro de uma linha. O pdf.js geralmente divide uma única palavra em várias execuções sem nenhuma lacuna entre elas, portanto, a adesão é feita em um espaço transformando "filename" em "f i l e n a m e". A solução é inserir um espaço somente quando o espaço horizontal exceder um quarto da altura da fonte, que é aproximadamente a largura de um espaço de palavras real.

Esses três números decidem quase tudo sobre a saída. Quando o resultado é bom, eles estavam certos. Quando um título se apega ao parágrafo abaixo dele, a diferença era inferior a 1,45 vezes a mediana e a regra dizia um parágrafo.

Por que duas colunas saem intercaladas?

Porque a única evidência para uma coluna é uma lacuna horizontal, e o agrupamento de linhas olha primeiro para a posição vertical.

Os dois blocos da minha página de teste ficavam em x 60 e x 320, com suas linhas em linhas de base compartilhadas. O agrupamento viu seis linhas de base, cada uma com texto de ambos os lados, e lendo cada uma delas. O resultado é o parágrafo no topo deste guia: todas as linhas da coluna da esquerda seguidas imediatamente pela linha ao lado.

Esta é a mesma falha que as colunas mexidas no OCR e tem a mesma raiz: a ordem de leitura é um julgamento sobre um layout, feito de geometria, por algo que não consegue ler.

Os conversores que lidam bem com as colunas fazem uma etapa de segmentação de página primeiro, procurando uma faixa vertical consistente de espaços em branco, executando a altura da página e dividindo a página antes de qualquer agrupamento de linhas. Isso funciona em um jornal ou jornal, onde a calha é ampla e regular. É menos confiável nos casos comuns, onde uma barra lateral, uma aspas ou uma mesa de duas colunas quebra a banda.

Se o seu documento tiver colunas, a resposta prática é verificar a saída e corrigir o primeiro parágrafo de cada página ou converter uma coluna por vez, se o documento for longo o suficiente para valer a pena.

O que acontece com uma mesa?

Torna-se uma frase.

Meu arquivo de teste tinha uma tabela de quatro linhas com três colunas. Aqui está tudo depois da conversão:

Region Q2 Q3 EMEA 412 455 AMER 388 401 APAC 120 166

Todos os valores sobreviveram. A estrutura não. Você não pode dizer a partir dessa linha que 412 é a figura Q2 da EMEA sem contar as posições e conhecer a forma do original.

A razão é que a maioria dos PDFs também não contém tabelas. Uma tabela em um PDF geralmente é desenhada em coordenadas com algumas linhas desenhadas ao redor, e as linhas são operações gráficas que não possuem nada no arquivo que as conecta ao texto que eles envolvem. Um conversor teria que detectar o alinhamento dos números, inferir uma grade e decidir quais execuções pertencem a qual célula, qual é um problema de pesquisa e não uma análise.

Alguns PDFs carregam uma estrutura real, por meio de tags adicionadas para acessibilidade e convertem muito melhor. Eles são uma minoria: os PDFs marcados vêm de uma exportação cuidadosa do Word ou do InDesign, não de um driver de impressão.

Se a tabela for o que você deseja, copie-a em uma planilha manualmente ou converta o PDF em texto e remodele-o lá. Um arquivo convertido do Word não lhe dará células.

Por que meu título se fundiu no parágrafo?

Porque o espaço abaixo dele não era grande o suficiente para atrapalhar a regra do parágrafo.

Na página dois do arquivo de teste, o título "Notas" sentou-se 40 pontos acima do corpo do texto, enquanto as linhas do corpo estavam separadas por 18 pontos. Essa lacuna é 2,2 vezes o espaçamento entre linhas, o que deveria ter dividido, e não o fez, porque a lacuna mediana em uma página com apenas quatro corridas não é uma estimativa confiável de nada. A saída foi:

Notes Note 14 covers intercompany revenue and the treatment of
deferred items carried over from the prior year.

Esta é a forma honesta de todo o problema. As regras de limite funcionam bem em uma página com texto suficiente para estabelecer um ritmo de linha de base e mal em um esparso. Uma página de rosto, uma pequena nota, uma folha de rosto ou um formulário geralmente voltam como um parágrafo de execução.

É também a coisa mais fácil de consertar após o fato. Os títulos são óbvios para um leitor humano, e pressionar o retorno no lugar certo leva um segundo, o que é menos tempo do que qualquer ferramenta para acertar.

O que acontece com uma página digitalizada?

Nada sai, e esse é o comportamento correto.

A terceira página do meu arquivo de teste não tinha nenhuma camada de texto, apenas um retângulo cinza para uma varredura. O PDF.js retornou zero execuções e o conversor produziu zero parágrafos para ele.

A página ainda é contada. Ele aparece no arquivo do Word como uma página vazia, então a página se quebra depois que ela permanece alinhada com o original, o que importa quando alguém está trabalhando a partir dos números das páginas. Um conversor que o solta silenciosamente, muda a cada página posterior por um.

Um PDF cujas páginas são todas as imagens é uma varredura e nenhum conversor pode extrair texto dele porque não há texto para extrair. O que isso precisa é de OCR, que lê a imagem das letras e adivinhações sobre os personagens, e que traz sua própria taxa de erro. A versão medida desse comércio está em O guia sobre o que quebra o OCR: inclinar-se após três graus é o que arruína uma varredura, não uma resolução.

Uma regra útil: abra o PDF e tente selecionar uma frase com seu cursor. Se o texto for destacado, um conversor poderá lê-lo. Se você obtiver um retângulo de seleção sobre uma imagem, primeiro precisará de OCR.

O que está dentro do .docx que sai?

Três arquivos em um zip, e isso é tudo o que é preciso.

Um .docx é um arquivo de convenções de embalagens abertas, padronizado como ECMA-376: um zip contendo partes XML mais um manifesto dizendo o que é cada parte. O próprio Microsoft Visão geral do formato Anda nas mesmas três partes. O mínimo que abre como documento do Word é de três entradas:

Parte propósito
[Content_Types].xml Declara o tipo de mídia de cada parte do pacote
_rels/.rels Pontos na parte do documento principal
word/document.xml O próprio conteúdo

Tudo o mais que um arquivo do Word geralmente carrega, estilos, fontes, temas, configurações, definições de numeração, é opcional. Deixe-os de fora e o leitor aplica seus padrões.

O documento de teste, 83 palavras em três páginas, chegou a um .docx de 1.305 word/document.xml é 1.169 bytes. Abri com o leitor de documentos da Apple, que é o que o TextEdit e o Pages usam, e ele renderizou todos os parágrafos em ordem com a quebra de página intacta. Um pacote mínimo não é degradado.

Um detalhe nesse XML importa mais do que parece. Cada corrida é escrita com xml:space="preserve". Sem isso, uma corrida começando ou terminando com um espaço o perde, e cada linha que foi embrulhada no original volta com sua última palavra unida à próxima.

O que acontece com as imagens?

Eles são descartados e o arquivo do Word não menciona isso.

O pacote escrito aqui tem três partes e nenhuma delas é uma parte da mídia. Um logotipo, um gráfico, uma assinatura digitalizada, uma captura de tela incorporada no relatório: tudo desaparecido, sem um espaço reservado onde eles estavam. O texto que os cercava se fecha como se nunca tivessem estado lá.

Esta é uma consequência do mesmo design que torna a saída pequena e confiável. Transportar uma imagem significa extraí-la do PDF, decidir seu formato, escrever em word/media/, adicionando um tipo de conteúdo para ele, adicionando uma parte de relacionamento e colocando um elemento de desenho no ponto certo no fluxo. Cada um deles é um local para um leitor rejeitar o arquivo, e um .docx que um processador de texto se recusa a abrir é pior do que um logotipo sem um logotipo.

É mais importante para os documentos em que uma imagem é o conteúdo e não a decoração. Um gráfico em um relatório se converte em nada, e um leitor da palavra arquivo não tem como saber que um gráfico existiu. Verifique o original junto com a conversão quando uma figura está sendo mencionada na prosa.

Por que o arquivo às vezes se recusa a abrir?

Controle de caracteres, que contém o XML proibições e PDFs.

A camada de texto de um PDF pega personagens de tudo o que a produziu: feeds de um pipeline de impressão, bytes nulos de uma codificação quebrada, outros códigos de controle C0 que não significam nada em um documento. XML 1.0 Não permite a maioria deles, mesmo escapado: o intervalo de caracteres que a especificação permite começa na Tab, Newline e Carriage Return e pula o restante do bloco C0.

A falha não é graciosa. O Word não avisa nem descarta o personagem; ele se recusa a abrir o arquivo e diz que o conteúdo é ilegível. Portanto, o conversor tira esses personagens antes de escrever, em vez de tentar escapar deles. Eles não tinham nenhum significado na fonte e custariam todo o documento.

Se você receber um .docx que um processador de texto rejeita como ilegível, esta é a primeira coisa a suspeitar, e é por isso que um conversor que escreve XML manualmente deve pensar nisso.

Você deve converter para o Word ou para o texto simples?

Word Se você for editá-lo, envie um texto se for processá-lo.

Eles compartilham a mesma extração. A diferença é apenas o que é escrito no final: um grava parágrafos em um zip de XML, o outro os grava em um arquivo .txt.

Você quer usar porque
Edite a prosa e envie PDF para palavra Estrutura de parágrafos, quebra de página, algo que um colega pode abrir
Pesquise, grep ou alimente-o a um script pdf para texto nenhuma marcação no caminho
Mantenha o layout exatamente Nem Edite o PDF ou obtenha o arquivo original
Leia uma digitalização OCR primeiro Não há uma camada de texto para extrair

A terceira fila é aquela com a qual vale a pena sentar. Se o layout é o que importa, converter para o Word é a direção errada, pois a conversão é onde o layout é perdido. Pergunte a quem enviou o PDF para o arquivo de onde foi exportado. É preciso uma mensagem e é a única abordagem que mantém a formatação.

Quanto tempo demora a conversão?

Tempo suficiente para ler o arquivo, e não mais.

Não há uma etapa de codificação e nenhum processamento de imagem. O trabalho está analisando a estrutura do PDF, puxando o conteúdo do texto de cada página, agrupando as corridas e serializando o XML em um ZIP. O arquivo de teste levou alguns milissegundos, o que não é um número útil porque eram três páginas. Um relatório de duzentos páginas é limitado por PDF.js que o analisam, que é aproximadamente linear no número de páginas e rápido.

O que você nota em um documento grande é a memória, porque todo o arquivo é mantido na guia do navegador junto com a estrutura analisada. Esse é o teto real aqui e não a velocidade.

O que você deve verificar na saída?

Quatro coisas, na ordem, provavelmente estão erradas.

  1. O primeiro parágrafo de cada página. É aqui que as mesclagens de intercalação e rumo da coluna aparecem.
  2. qualquer mesa. Confirme se os números estão presentes, então aceite que a grade desapareceu e reconstrua-a se precisar.
  3. Palavras hifenizadas nas extremidades da linha. Uma palavra quebrada em uma linha no PDF volta com o hífen no meio dela.
  4. contagem de páginas. Deve corresponder ao original, incluindo qualquer página em branco ou digitalizada.

Essa lista demora um minuto em um documento de dez páginas e é a diferença entre um arquivo que você pode enviar e um que contém silenciosamente uma frase emendada.

Por que isso funciona no navegador?

Porque os documentos que as pessoas convertem são contratos, declarações, cartas, resultados médicos e coisas embargo.

A conversão é uma análise e um zip, ambos os quais um navegador funciona perfeitamente. O arquivo é lido do disco para a página, analisado lá com PDF.js compilado para a web, montado em um .docx na memória e devolvido como download. Nenhuma solicitação carrega o documento, nada é armazenado em um servidor e nada existe para que ninguém exclua posteriormente.

A alternativa usual é um site que leva seu PDF, converte-o em uma máquina sobre a qual você não sabe nada e envia um link por e-mail. Para um folheto público, tudo bem. Para um contrato de trabalho, é uma decisão que você não foi solicitado a tomar conscientemente.

O custo é a memória da guia em arquivos muito grandes e nenhum OCR do lado do servidor para páginas digitalizadas. Ambos são limites visíveis em vez de silenciosos, que é o comércio que vale a pena ter.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!