𝗦𝘁𝗼𝗽 𝗣𝗮𝗿𝘀𝗶𝗻𝗴 𝗣𝗗𝗙𝘀 𝗮𝘁 𝗥𝗲𝗻𝗱𝗲𝗿 𝗧𝗶𝗺𝗲 -> 𝗣𝗮𝗿𝗲 𝗱𝗲 𝗳𝗮𝘇𝗲𝗿 𝗼 𝗽𝗮𝗿𝘀𝗶𝗻𝗴 𝗱𝗲 𝗣𝗗𝗙𝘀 𝗻𝗼 𝗺𝗼𝗺𝗲𝗻𝘁𝗼 𝗱𝗮 𝗿𝗲𝗻𝗱𝗲𝗿𝗶𝘇𝗮çã𝗼

A maioria das ferramentas de extração de PDF no frontend falha.

Desenvolvedores tentam adivinhar a estrutura do documento a partir da saída visual. Eles observam os pixels renderizados para encontrar colunas, tabelas ou listas. Eles usam visão computacional ou proximidade de pixels para decidir onde uma caixa começa.

Esta é a maneira errada de construir.

Um PDF já contém dados estruturais explícitos em seu operator stream. Uma tabela não é apenas um grupo de pixels próximos. Ela é desenhada com comandos específicos como moveTo, lineTo ou rectangle. Os limites que você deseja encontrar já estão codificados na fonte.

Se o seu extrator fornece colunas diferentes com zoom de 100% versus 150%, você não está extraindo estrutura. Você está fazendo o reconhecimento de padrões de artefatos visuais.

Pare de usar heurísticas visuais. Comece a fazer o parsing do operator stream.

Por que o operator stream é melhor:

O caminho difícil é o caminho certo.

Você deve entender a stack CTM. Você deve rastrear estados de matriz e classificar subpaths. Você precisa ler a especificação do PDF e o código-fonte para dominá-lo.

Isso exige mais esforço inicial. Mas funciona para cada PDF que um usuário envia. Ferramentas baseadas em pixels funcionam apenas para os poucos arquivos em sua suíte de testes.

Construa um extrator real, não uma demonstração.

Fonte: https://dev.to/bonzai2carn/stop-parsing-pdfs-at-render-time-a-better-architecture-for-structured-extraction-5fb8