Conversor de PDF para Base64

Codifique um documento PDF em Base64 para requisições de API, e-mail ou incorporação em HTML. Um visualizador integrado exibe o PDF para você confirmar que é o arquivo certo antes de copiar o resultado.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Solte um PDF na área de upload ou clique para escolher um (até 100 MB).
  2. Confira a prévia para ter certeza de que é o documento certo.
  3. Escolha Base64 para obter o Base64 puro usado em requisições de API, ou Data URI para incorporar o PDF em uma página web.
  4. Copie o resultado ou baixe-o como arquivo .txt.

Envio de PDFs por APIs JSON

O JSON não tem um tipo binário, por isso APIs REST que recebem documentos geralmente os aceitam como string Base64. Plataformas de assinatura eletrônica, sistemas de faturamento e de faturas eletrônicas, serviços de impressão e envio postal, mecanismos de OCR e sistemas de arquivamento de documentos costumam receber PDFs dessa forma, em um campo como content, file ou documentBase64, com o nome do arquivo em um campo separado. Alguns serviços devolvem PDFs do mesmo jeito; Base64 para PDF transforma esses dados de volta em arquivos.

Envie o Base64 puro sem quebras de linha, a menos que a documentação da API diga o contrário, já que muitas APIs rejeitam um valor que ainda traz o prefixo data:application/pdf;base64,. Leve em conta também os limites de tamanho da requisição: um PDF de 7,5 MB vira cerca de 10 MB de Base64.

Como reconhecer um PDF em Base64

Um arquivo PDF começa com os caracteres %PDF- seguidos do número da versão. Codificados em Base64, esses bytes sempre geram uma string que começa com JVBERi0. Uma string longa que começa com JVBER em uma resposta de API, em uma coluna de banco de dados ou em um arquivo de log é quase certamente um PDF. A mesma verificação funciona antes de você enviar um payload: se a sua string começa com qualquer outra coisa, talvez você tenha codificado os dados errados ou codificado duas vezes.

Como incorporar um PDF em HTML

Um data URI coloca o PDF inteiro dentro de uma página HTML, sem nenhum arquivo separado para hospedar:

<embed src="data:application/pdf;base64,JVBERi0..." type="application/pdf" width="100%" height="600">

<iframe src="data:application/pdf;base64,JVBERi0..." width="100%" height="600"></iframe>

Isso funciona em navegadores de desktop com visualizador de PDF integrado, mas tem limitações. Muitos navegadores móveis simplesmente não exibem PDFs dentro de uma página. O Chrome e alguns outros navegadores também impedem que uma página leve a aba inteira para uma URL data:, então um link ou uma chamada window.open que aponte para um URI data:application/pdf pode abrir uma aba em branco ou não fazer nada. Para abrir um PDF em uma nova aba a partir do JavaScript, converta o Base64 em uma Blob URL. Para documentos maiores que alguns megabytes, uma URL de arquivo comum costuma ser a melhor opção.

Como codificar um PDF no código

# Python: monta o corpo de uma requisição JSON
import base64, json
from pathlib import Path

pdf_b64 = base64.b64encode(Path('invoice.pdf').read_bytes()).decode('ascii')
body = json.dumps({'filename': 'invoice.pdf', 'content': pdf_b64})

// Navegador: o arquivo vem de um <input type="file">
const reader = new FileReader();
reader.onload = () => {
  const pdfBase64 = reader.result.split(',')[1]; // remove o prefixo do data URI
};
reader.readAsDataURL(file);

Perguntas frequentes

Por que minha string Base64 de PDF começa com JVBERi0?
Esses caracteres são a codificação Base64 de %PDF-, o cabeçalho que aparece no início de todo arquivo PDF. Vê-los confirma que a string contém um PDF.
O PDF é enviado para algum servidor quando eu o converto?

Não. O arquivo é lido, codificado e exibido localmente no seu navegador. Contratos, faturas e outros documentos confidenciais nunca saem do seu dispositivo.

A codificação altera ou comprime o PDF?

Não. A string Base64 é decodificada exatamente nos mesmos bytes, então a proteção por senha, as assinaturas digitais, os campos de formulário e os metadados são todos preservados. O texto fica cerca de 33% maior que o PDF; para reduzir o tamanho, comprima o PDF antes de codificá-lo.

Devo ativar Quebrar linhas a cada 76?

Somente quando o formato exigir, por exemplo ao montar manualmente um e-mail MIME, em que as linhas dos anexos são limitadas a 76 caracteres. APIs JSON e data URIs em HTML esperam uma única string contínua.

Qual pode ser o tamanho do PDF?

A ferramenta aceita arquivos de até 100 MB. Para APIs, o limite prático costuma ser menor; verifique o tamanho máximo da requisição e lembre-se de que o Base64 acrescenta cerca de um terço. Uma saída muito longa pode demorar para aparecer na tela; para documentos grandes, use Baixar.