Codificar um PDF em Base64

converte um PDF numa cadeia Base64 / Data URI, ideal para integrar um documento diretamente em HTML, JSON ou email

Codificar um PDF em Base64

O Base64 é uma codificação que representa dados binários sob a forma de texto ASCII (64 caracteres: A-Z, a-z, 0-9, mais dois caracteres adicionais). Um ficheiro PDF, que é binário por natureza, não pode ser colado diretamente num e-mail HTML, num payload JSON ou num atributo XML: tem primeiro de ser convertido em texto. A nossa ferramenta recebe o seu ficheiro PDF e devolve a sua representação Base64, pronta a copiar.

Para os detalhes sobre Base64 e o formato Data URI em geral, consulte o nosso codificador Base64 de texto que cobre os princípios em profundidade.

Porquê codificar um PDF em Base64?

  • Integrar um PDF num e-mail HTML: alguns clientes de e-mail aceitam ligações Data URI ou anexos codificados inline em MIME.
  • Armazenar um PDF num campo de texto de base de dados (coluna TEXT ou VARCHAR) quando a restrição aplicacional impede um tipo binário (BLOB).
  • Transmitir um PDF num payload JSON de API: JSON não suporta binário, portanto qualquer ficheiro tem de transitar em Base64.
  • Incorporar um PDF num URL data: uso raro, a reservar para ficheiros muito pequenos, porque os URL têm limites de comprimento (tipicamente 2000 a 8000 caracteres conforme o navegador e o servidor).

Formato Data URI para PDF

Um URL do tipo Data URI incorpora o conteúdo do PDF diretamente no URL:

data:application/pdf;base64,JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFI...

O prefixo data:application/pdf;base64, indica ao navegador o tipo MIME e a codificação. Pode colar este URL diretamente na barra de endereço de um navegador moderno para abrir o PDF, ou colocá-lo no atributo src de um <iframe> ou <embed>.

Casos de uso concretos

  • Assinaturas eletrónicas: a maioria das APIs de assinatura (DocuSign, Yousign, etc.) aceitam ou exigem o PDF em Base64 no corpo JSON do pedido.
  • Backups e arquivamento: serializar um PDF numa exportação JSON ou num ficheiro de texto versionado em git (a evitar para grandes volumes, mas prático para fixtures de teste).
  • Testes automatizados: integrar um PDF de referência diretamente num teste unitário sem depender de um ficheiro externo.
  • Exportações de cliente: gerar um PDF no servidor, devolvê-lo em Base64 na resposta JSON, o cliente descodifica-o e descarrega-o sem chamada HTTP adicional.

Inconvenientes a conhecer

  • Sobrecusto de tamanho: o Base64 acrescenta cerca de 33 % ao volume. Um PDF de 1 MB torna-se uma cadeia de 1,37 MB em Base64.
  • Sem cache HTTP: um PDF incorporado em Data URI numa página HTML é descarregado de novo em cada carregamento, ao contrário de um ficheiro servido a partir de um URL clássico com cabeçalhos de cache.
  • Limites de tamanho: a memória do navegador, o tamanho máximo de um POST no servidor (upload_max_filesize e post_max_size em PHP), e as quotas da base de dados (tamanho de linha MySQL, por exemplo) podem rapidamente ser ultrapassados em PDFs volumosos.
  • Não adequado a ficheiros grandes: acima de alguns MB, prefira um armazenamento dedicado (S3, disco) e transmita um URL em vez do conteúdo codificado.

Como utilizar a ferramenta

  1. Clique no campo de carregamento e selecione o seu ficheiro PDF.
  2. A ferramenta codifica o conteúdo binário em Base64 e mostra o resultado.
  3. Pode optar por incluir ou não o prefixo data:application/pdf;base64, conforme o seu caso de uso (com prefixo para uma Data URI, sem prefixo para um payload JSON).
  4. Copie a cadeia e cole-a onde precisar.

Perguntas frequentes

Qual o tamanho máximo de PDF aceite?

O limite depende da configuração do servidor. Na prática, mantenha-se abaixo de alguns MB para conservar uma experiência fluida. Acima disso, o navegador abranda, a área de transferência satura, e os destinos (e-mail, JSON, base de dados) arriscam-se a rejeitar a carga.

O PDF Base64 é compatível com os clientes de e-mail (Gmail, Outlook)?

Como anexo codificado inline numa mensagem MIME, sim: é mesmo o mecanismo padrão do correio eletrónico. Em contrapartida, em Data URI no corpo HTML de uma mensagem (<a href="data:..."> ou <iframe>), a maioria dos clientes de e-mail bloqueia ou reescreve estes URL por razões de segurança. Prefira o anexo clássico.

Qual a diferença com um PDF cifrado?

Codificar em Base64 não é cifrar: a cadeia continua legível e trivial de descodificar por qualquer pessoa. Um PDF cifrado (palavra-passe de proprietário ou de utilizador) permanece cifrado mesmo depois de codificado em Base64: a codificação e a cifragem são duas operações independentes.

Posso fazer a operação inversa?

Sim: utilize o nosso descodificador PDF Base64 para transformar uma cadeia Base64 num ficheiro PDF descarregável.

O meu PDF é enviado para os vossos servidores?

A codificação é tratada no lado do servidor apenas durante o pedido, depois o ficheiro é libertado. Nenhum armazenamento persistente é efetuado. Para PDFs particularmente sensíveis, prefira um tratamento local com uma ferramenta offline.

Exemplo de pedido

curl -X POST https://cdrn.fr/api/v1/tools/base64-pdf-encoder/execute \
  -F "file=@/path/to/file"

Esquema de entrada

Campo Tipo Obrigatório Predefinição
file file

esta ferramenta espera um ficheiro - utilize Content-Type multipart/form-data em vez de application/json

Pontos de acesso

  • GET https://cdrn.fr/api/v1/tools - lista todas as ferramentas disponíveis
  • GET https://cdrn.fr/api/v1/tools/base64-pdf-encoder - obtém o esquema desta ferramenta
  • POST https://cdrn.fr/api/v1/tools/base64-pdf-encoder/execute - executa esta ferramenta com um payload JSON