Conversor de Base64 para PDF

Cole o Base64 de uma resposta de API, de um e-mail ou de um banco de dados e transforme-o de volta em PDF. Leia o documento no visualizador incorporado e salve-o como um arquivo .pdf comum.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Cole a string Base64, ou um data URI que comece com data:application/pdf;base64, na caixa de entrada.
  2. Confira se o arquivo foi detectado como PDF e leia-o no visualizador.
  3. Baixe o PDF para salvá-lo no seu dispositivo.

Como copiar o Base64 de uma resposta de API

Serviços que geram faturas, etiquetas de envio, relatórios ou contratos assinados costumam devolver o PDF dentro de um JSON, por exemplo {"filename": "label.pdf", "data": "JVBERi0..."}. Copie apenas o texto entre as aspas depois do nome do campo e fique atento a estes detalhes:

  • Barras escapadas. Alguns codificadores JSON, entre eles o json_encode do PHP, escrevem cada / como \/. Como / é um caractere normal do Base64, substitua \/ por / antes de colar, ou interprete o JSON primeiro e copie o valor.
  • Aspas e vírgulas. Deixe de fora as aspas ao redor do valor e qualquer vírgula no final.
  • Quebras de linha. Espaços e quebras de linha reais dentro do Base64, como em um valor quebrado a cada 76 caracteres, não causam problema e não precisam ser removidos. Sequências literais \n ou \r\n no JSON bruto são outra história: elas são formadas por caracteres de barra invertida e precisam ser apagadas.

Copiar o valor da visualização já interpretada nas ferramentas de desenvolvedor do navegador evita todos esses problemas de escape.

Como extrair um PDF anexado a um e-mail

Os anexos de e-mail ficam armazenados em Base64 dentro da mensagem bruta. Abra o código-fonte da mensagem ("Mostrar original" no Gmail, "Código-fonte da mensagem" no Thunderbird, "Fonte Bruta" no Apple Mail) e encontre a parte cujos cabeçalhos incluem Content-Type: application/pdf (ou application/octet-stream com um nome de arquivo .pdf) e Content-Transfer-Encoding: base64. Copie o bloco que começa depois da linha em branco abaixo desses cabeçalhos e termina antes da próxima linha iniciada por --, que é o delimitador MIME. Cole-o aqui do jeito que está; as quebras de linha são ignoradas.

Como exibir um PDF em Base64 no seu aplicativo web

Quando o seu front-end recebe um PDF em Base64 e precisa exibi-lo, uma Blob URL é mais confiável que um data URI, que alguns navegadores se recusam a abrir em uma nova aba:

const bytes = Uint8Array.from(atob(base64), c => c.charCodeAt(0));
const blob = new Blob([bytes], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
window.open(url); // ou use como src de um <iframe>

Chame URL.revokeObjectURL(url) quando o documento não for mais necessário, para liberar a memória. Observe que atob só aceita o alfabeto Base64 padrão, então converta antes qualquer entrada segura para URL (- e _).

Perguntas frequentes

Por que meu Base64 não é detectado como PDF?
Um PDF em Base64 começa com JVBERi0, a codificação de %PDF-. Se o seu começa com aspas, um nome de campo ou outro texto, remova-o. Se começa com SlZCRVJ, o PDF foi codificado em Base64 duas vezes: decodifique-o uma vez com o decodificador Base64 e cole o resultado aqui. Caso contrário, os dados podem ser de outro tipo de arquivo, que Base64 para arquivo consegue identificar.
O PDF é baixado, mas não abre. O que deu errado?

O mais provável é que o Base64 tenha sido cortado. Logs, consoles e ferramentas de banco de dados costumam truncar valores longos, e um PDF sem o final não pode ser lido, porque a tabela de referência cruzada que localiza cada página fica perto do fim do arquivo. Copie o valor completo de novo, de preferência salvando a resposta original em um arquivo.

A prévia fica em branco no meu celular. O arquivo está corrompido?

Não necessariamente. Alguns navegadores móveis não conseguem exibir um PDF dentro de uma página. Baixe o arquivo e abra-o em um leitor de PDF para conferir.

Posso decodificar um PDF protegido por senha?

Sim. A decodificação restaura o arquivo byte a byte, incluindo a criptografia. A prévia pode pedir a senha ou ficar vazia, e o arquivo baixado abre em qualquer leitor de PDF depois que você digita a senha.

O documento é enviado para algum lugar?

Não. A decodificação e a prévia acontecem no seu navegador, então PDFs confidenciais, como contratos, holerites ou prontuários médicos, permanecem no seu dispositivo.