Conversor gratuito de PDF para HTML

Extraia o texto de documentos PDF e converta-o em HTML semântico limpo. Pré-visualize instantaneamente e baixe ou copie o código.

Seus dados nunca saem do seu dispositivo
Solte um PDF aqui ou clique para navegar (máx 10 MB)

Processando…

Sobre a conversão PDF → HTML

Esta ferramenta usa PDF.js para extrair o texto de arquivos PDF e o renderiza em HTML semântico. Ideal para converter documentos em formato compatível com a web, arquivar conteúdo ou preparar texto para processamento posterior.

Casos de uso comuns

Perguntas frequentes

Quais tamanhos de PDF são suportados ?

Esta ferramenta pode processar PDFs de até cerca de 10 MB, dependendo do seu navegador. PDFs muito grandes ou complexos podem levar mais tempo para serem processados.

Ele preserva a formatação do PDF ?

A ferramenta extrai o conteúdo textual e o renderiza em parágrafos. Layouts complexos, imagens e estilos são simplificados em HTML limpo.

Posso baixar o HTML ?

Sim. Clique em « Baixar o HTML » para salvar o conteúdo convertido como arquivo .html, abrível em qualquer navegador ou editor.

Uma breve história do PDF, do PostScript a uma página portátil

O Portable Document Format foi a criação de John Warnock, cofundador da Adobe Systems, que havia coinventado o PostScript, a linguagem de descrição de página que, a partir de 1985 com a Apple LaserWriter, tornou possível a editoração eletrônica. O PostScript era extraordinariamente poderoso, mas era uma linguagem de programação, não um formato de documento: um arquivo PostScript descrevia como renderizar uma página quando fornecido a um interpretador, mas não era realmente feito para ser lido, editado ou renderizado de forma consistente em máquinas que não tivessem as fontes corretas.

Em 1991, Warnock fez circular um memorando interno da Adobe que ficou conhecido como o Projeto Camelot. A premissa: a Adobe deveria criar um único formato de arquivo capaz de capturar qualquer documento (incluindo suas fontes, layout, gráficos vetoriais e imagens) e reproduzi-lo de forma idêntica em qualquer computador, em qualquer sistema operacional, independentemente de qual aplicativo o tivesse criado originalmente. Quando a proposta foi refinada, o projeto já tinha um nome de produto: Adobe Acrobat.

O Acrobat 1.0 e o PDF 1.0 foram demonstrados na feira Comdex Fall em Las Vegas em novembro de 1992 e entregues aos clientes em junho de 1993. A decisão comercial crucial da Adobe veio em 1994, quando passou a distribuir o Acrobat Reader gratuitamente, um movimento que espelhou o que havia acontecido com os navegadores HTML e semeou uma base de milhões de instalações. O formato passou por várias revisões: PDF 1.1 (1996, links externos e segurança), 1.2 (1996, AcroForms), 1.3 (2000, assinaturas digitais), 1.4 (2001, transparência), 1.5 (2003, fluxos de objetos e JPEG 2000), 1.6 (2004, OpenType e 3D), 1.7 (2006). Em 2008, o PDF 1.7 foi publicado como ISO 32000-1:2008; o PDF 2.0 veio em seguida como ISO 32000-2:2017, com uma segunda edição substancialmente revisada (ISO 32000-2:2020) que incorporou erratas e é a referência autoritativa atual.

Vários perfis especializados de PDF existem ao lado do padrão principal: PDF/A (ISO 19005-1:2005, com o -2 em 2011 e o -3 em 2012) é o perfil de arquivamento que proíbe recursos que dependam de recursos externos ou de software futuro (sem JavaScript, sem áudio, sem criptografia, as fontes devem estar incorporadas); PDF/X é o perfil de pré-impressão usado pela indústria gráfica; PDF/E é o perfil de engenharia para desenhos técnicos; PDF/UA (ISO 14289-1:2014) é o perfil de acessibilidade universal que exige estrutura lógica e marcação para que os leitores de tela possam apresentar o conteúdo na ordem de leitura; PDF/VT é o perfil variável e transacional usado em mala direta personalizada.

Por que a conversão de PDF para HTML é estruturalmente difícil

Um PDF é, em seu nível mais baixo, uma coleção de objetos numerados (dicionários, arrays, strings, números, nomes e fluxos binários) dispostos com uma tabela de referência cruzada no final que permite a um leitor saltar para qualquer objeto sem analisar o arquivo inteiro. Os objetos formam uma árvore enraizada em um objeto Catalog que aponta para uma árvore Pages, que contém objetos Page. Cada Page referencia um fluxo de conteúdo: as instruções reais que desenham a página.

Um fluxo de conteúdo é uma sequência de operadores gráficos compactos em uma pequena linguagem relacionada ao PostScript, mas que não é Turing-completa. Para texto, ele usa Tf (define a fonte e o tamanho), Td (move a posição do texto), Tm (define a matriz de texto), Tj (exibe uma string), TJ (exibe um array de strings com deslocamentos individuais opcionais de caractere para kerning) e ET (encerra o texto). O ponto crucial é que tudo é posicional. Um parágrafo de corpo de texto não é armazenado como um parágrafo. Ele é armazenado como uma série de comandos Tj ou TJ, cada um desenhando um glifo ou uma curta sequência de glifos em uma coordenada x e y específica na página. Não há noção de frase, parágrafo, título, lista ou coluna, apenas a questão de onde cada caractere fica fisicamente.

O HTML é o inverso: uma árvore fluida de elementos semânticos em que o layout é responsabilidade do renderizador e o mesmo HTML pode se readaptar para caber em um celular, um computador ou um leitor de tela. Converter PDF para HTML, portanto, exige fazer a engenharia reversa de uma estrutura que o PDF nunca foi obrigado a registrar. Um conversor precisa observar a distribuição espacial do texto em cada página e inferir:

Nada disso é resolvido lendo o fluxo de conteúdo em ordem, porque a ordem no fluxo não é necessariamente a ordem de leitura. Um mecanismo de layout que produziu o PDF pode ter desenhado os elementos na ordem mais eficiente para a renderização, que pode ser de cima para baixo em zigue-zague, ou por fonte, ou por cor. O texto de um único parágrafo pode ficar intercalado com o texto de parágrafos vizinhos no fluxo subjacente. É por isso que os extratores de PDF que simplesmente concatenam as strings na ordem do fluxo produzem resultados truncados para qualquer coisa mais complexa do que um romance de coluna única.

Se o PDF tiver sido marcado (tagged): ou seja, se o autor incluiu uma árvore de estrutura ao lado do conteúdo visual, a tarefa fica muito mais fácil. Um PDF marcado inclui uma hierarquia de elementos de estrutura (P para parágrafo, H1 a H6 para títulos, L para lista, LI para item de lista, Table, TR, TD, Figure, Caption) que espelham o vocabulário semântico do HTML. O PDF/UA exige a marcação para acessibilidade justamente porque PDFs não marcados são essencialmente opacos para a tecnologia assistiva. Na prática, porém, a maioria dos PDFs por aí não é marcada, ou é mal marcada pela ferramenta de autoria, então um conversor robusto precisa recorrer à análise de layout mesmo quando há marcação.

As principais bibliotecas de renderização de PDF de código aberto

O PDF.js é a biblioteca JavaScript escrita pela Mozilla, lançada originalmente em junho de 2011 como um projeto experimental liderado por Andreas Gal. Ela analisa e renderiza PDFs inteiramente no navegador usando o canvas do HTML5 e JavaScript, sem necessidade de plugin nativo. O PDF.js foi incorporado ao Firefox como o visualizador de PDF padrão a partir do Firefox 19 em março de 2013, substituindo o plugin do Adobe Reader. Ele expõe uma API JavaScript que permite a uma página extrair o conteúdo de texto com metadados posicionais (cada trecho de texto retorna com seu x, y, largura, altura, nome da fonte e tamanho da fonte). Esta ferramenta é construída sobre o PDF.js.

O Poppler é uma biblioteca C++ derivada do xpdf, o veterano visualizador de PDF que a Glyph and Cog mantém desde o fim dos anos 1990. O Poppler alimenta os recursos de renderização de PDF dos ambientes de desktop do Linux (Evince no GNOME, Okular no KDE), os utilitários de linha de comando pdftotext e pdftohtml e muitos pipelines de processamento de PDF no lado do servidor. O MuPDF, da Artifex Software (a mesma empresa que mantém o Ghostscript), é uma biblioteca C menor e mais rápida voltada para uso embarcado. O PDFium é o motor que vem dentro do Google Chrome e do Microsoft Edge para a visualização de PDF integrada; é um fork do Foxit PDF SDK proprietário que o Google e a Foxit tornaram código aberto em conjunto em maio de 2015. O qpdf é uma biblioteca C++ e ferramenta de linha de comando focada na manipulação estrutural em vez da renderização: ela pode descomprimir, criptografar, descriptografar, linearizar e reescrever PDFs sem alterar seu conteúdo visual.

Para produzir saída HTML especificamente, o projeto criado para esse fim mais importante é o pdf2htmlEX, originalmente escrito por Lu Wang em 2012 e agora mantido por um grupo da comunidade. O pdf2htmlEX adota uma abordagem diferente da maioria dos conversores: em vez de tentar reconstruir HTML semântico, ele reproduz o layout visual do PDF da forma mais fiel possível, emitindo elementos div posicionados de forma absoluta para cada trecho de texto, incorporando as fontes originais como arquivos Web Open Font Format (WOFF) e usando transformações CSS quando necessário. O resultado é uma página web que parece indistinguível do PDF original, mas o HTML subjacente é uma parede de spans position: absolute sem significado semântico.

Fidelidade de layout x fluxo semântico, o compromisso central

Esse é o compromisso central na conversão de PDF para HTML: você pode ter fidelidade de layout ou pode ter fluxo semântico, mas é difícil ter os dois. Um conversor que prioriza a fidelidade, como o pdf2htmlEX, produz uma saída que imprime e se parece com o original, mas é opaca para um leitor de tela e rígida na tela de um celular. Um conversor que prioriza o fluxo, como o pdftotext ou o getTextContent do PDF.js seguido de uma reconstrução simples de parágrafos, produz um HTML limpo, legível e acessível, mas perde a riqueza visual da origem: cores, fontes exatas, posicionamento de imagens, grades de tabelas e qualquer noção da página original.

A ferramenta da Absolutool fica firmemente do lado que prioriza o fluxo. Ela extrai o conteúdo de texto usando o PDF.js e o emite como parágrafos, priorizando a legibilidade, a acessibilidade e o tamanho de arquivo pequeno em vez de uma reprodução perfeita ao pixel. Se você precisa do caminho da reprodução visual (cada glifo em sua posição original, fontes originais incorporadas, paginação exata preservada), o pdf2htmlEX é a ferramenta a considerar; se você precisa do caminho dos parágrafos legíveis (reutilização de conteúdo, publicação web, HTML indexável por busca, saída acessível a leitores de tela), esta ferramenta é adequada ao propósito.

Fontes incorporadas, imagens e o conteúdo vetorial por baixo

Um PDF pode incorporar qualquer fonte que quiser, e um conversor que deseja preservar a aparência original tem três opções. Incorporar e servir: o conversor extrai cada fonte incorporada do PDF, a reempacota como uma fonte web em um formato que os navegadores entendem (WOFF ou, desde 2018, WOFF2 com sua compressão Brotli mais agressiva) e cria um link para ela a partir do HTML gerado. Isso preserva a aparência original, mas infla o tamanho do arquivo e pode esbarrar em questões de licença se os direitos de incorporação da fonte não se estenderem à redistribuição na web. Substituir: mapear cada fonte incorporada para uma fonte de sistema semelhante (uma fonte serifada do PDF pode virar Times New Roman ou Georgia), aceitando alguma diferença visual em troca de uma saída menor e mais limpa. Ignorar: descartar totalmente a informação de fonte e deixar o navegador aplicar uma fonte de corpo padrão, que é o que a maioria dos conversores que priorizam o fluxo faz, porque o usuário lê o HTML com o estilo normal do navegador.

As imagens apresentam uma escolha semelhante. Um conversor pode extrair as imagens incorporadas como arquivos separados e referenciá-las a partir do HTML; rasterizar páginas inteiras como imagens e incorporá-las em linha (transformando o PDF em uma galeria glorificada); ou descartar as imagens totalmente e emitir apenas texto, que é a escolha que esta ferramenta faz, apropriada para reutilização de conteúdo em vez de reprodução visual. O conteúdo vetorial (linhas, formas, traçados desenhados pelos operadores gráficos do PDF) é ainda mais complicado, porque não há uma maneira limpa de representá-lo em HTML semântico; os conversores que querem preservá-lo tendem a recorrer a SVG em linha ou à rasterização em PNG.

Quando o PDF é uma imagem: recurso de OCR para documentos digitalizados

Uma fração significativa dos PDFs por aí não são realmente documentos no sentido estruturado: são imagens digitalizadas de documentos em papel, empacotadas em invólucros PDF porque o PDF é o formato universal para enviar coisas parecidas com papel pela internet. Um PDF digitalizado não tem fluxo de conteúdo de texto; cada página é uma única imagem matricial incorporada que por acaso retrata texto, mas não o contém como caracteres legíveis por máquina. Extrair texto de um PDF desses exige Reconhecimento Óptico de Caracteres (OCR), que é uma operação fundamentalmente diferente da extração de texto.

O mecanismo de OCR de código aberto dominante é o Tesseract, desenvolvido originalmente no HP Labs entre 1985 e 1995, tornado código aberto em 2005 e mantido pelo Google de 2006 até o Google repassar a administração principal a um grupo da comunidade por volta de 2018. O Tesseract suporta mais de cem idiomas, roda em todas as principais plataformas e alimenta os recursos de OCR de inúmeras ferramentas de desktop e de servidor. O framework Vision da Apple, disponível no macOS e no iOS desde 2017, inclui uma API de reconhecimento de texto rápida e precisa usada pelos aplicativos integrados de captura de tela e de fotos do sistema. O Google Cloud Vision, o Azure Computer Vision e o Amazon Textract são os principais serviços de OCR em nuvem; para documentos especificamente, o Textract e o Document Intelligence da Azure vão além do OCR bruto para reconhecer tabelas, pares de chave-valor e campos de formulário.

Um conversor de PDF para HTML baseado em navegador que roda inteiramente no lado do cliente geralmente não pode realizar OCR: os modelos de OCR têm dezenas de megabytes no mínimo e a inferência é lenta demais para rodar de forma interativa no laptop de um usuário. Se o seu PDF contém páginas digitalizadas sem texto extraível, esta ferramenta produzirá uma saída vazia para essas páginas, e o próximo passo certo é uma ferramenta de OCR separada ou um serviço no lado do servidor.

Por que as pessoas convertem PDFs para HTML

Os casos de uso se enquadram em alguns poucos padrões recorrentes:

Cada um deles tem requisitos ligeiramente diferentes, mas compartilham um fio condutor: o usuário quer o conteúdo do PDF (as palavras, a estrutura, o significado) sem ser limitado pelo formato rígido, preso à página, que o documento original escolheu.

Mais perguntas

Por que meu HTML convertido fica diferente do PDF original?

Esta ferramenta prioriza o fluxo: ela extrai o texto e emite parágrafos limpos na fonte padrão do seu navegador, priorizando a legibilidade, a acessibilidade e a indexabilidade por busca em vez da fidelidade visual. Se você precisa de uma reprodução perfeita ao pixel do layout original (fontes incorporadas, posicionamento exato, cores originais), veja ferramentas que priorizam a fidelidade, como o pdf2htmlEX, que emite elementos div posicionados de forma absoluta que correspondem visualmente ao PDF de origem, mas produzem um HTML essencialmente ilegível para leitores de tela e rígido em telas de celular.

Por que meu PDF de várias colunas está saindo embaralhado?

O PDF não armazena a ordem de leitura, apenas as posições. Um conversor precisa inferir os limites das colunas a partir da distribuição espacial do texto. Para layouts simples de duas colunas, a heurística costuma funcionar; para layouts complexos com notas laterais, notas de rodapé que se intercalam com o corpo do texto, ou texto que cruza a calha de uma coluna, ela pode produzir uma saída fora de ordem. Se você tem um PDF marcado (um que inclui uma árvore de estrutura), a precisão é drasticamente melhor; para PDFs não marcados, o resultado depende de quão claramente as colunas estão fisicamente separadas por espaço em branco.

Meu PDF é digitalizado (só imagens), por que nada é extraído?

Um PDF digitalizado não tem conteúdo de texto: cada página é uma imagem matricial de texto, e não texto que o analisador possa ler. Extrair texto exige OCR (Tesseract, Google Cloud Vision, framework Vision da Apple, etc.), que é uma operação fundamentalmente diferente da análise de PDF. Esta ferramenta não inclui um mecanismo de OCR porque os modelos são grandes demais para serem distribuídos com uma ferramenta de navegador. O próximo passo certo é um serviço de OCR dedicado ou uma ferramenta de desktop com OCR integrado.

Posso converter um PDF protegido por senha?

Se o PDF tem uma senha de abertura (você precisa digitar uma senha só para visualizá-lo), o PDF.js lançará um erro em vez de converter. Se o PDF tem apenas uma senha de permissões (a abertura é livre, mas a impressão/cópia são restritas), o comportamento varia: a maioria das versões modernas do PDF.js respeita as permissões e pode se recusar a extrair o texto. De qualquer forma, o caminho mais limpo é remover a proteção na ferramenta de PDF original primeiro e depois converter. Remover a proteção de um PDF que você possui legalmente é aceitável; fazê-lo em um PDF que não é seu pode não ser.

Ferramentas relacionadas