DocsME
5 min de leituraDocsMe Team

PDF em Base64 vs PDF em Data URI

Compare uma string Base64 pura e um data URI completo para um PDF — o que cada um contém, quando o navegador precisa do prefixo e quando a string pura basta.

  • base64 vs data uri
  • pdf data uri
  • string base64 pdf
  • pdf me

A Resposta Curta

Uma string Base64 pura é apenas os bytes codificados. Um data URI é essa mesma string envolvida em um prefixo — data:application/pdf;base64, — que diz a quem lê tanto o tipo do arquivo quanto a codificação usada. Os dados depois da vírgula são idênticos nos dois casos.

Quando Você Precisa de um Data URI

Um navegador, um <iframe>, um elemento <embed> ou uma propriedade CSS de background não conseguem adivinhar o que uma string simples representa. O prefixo do data URI fornece o contexto que falta, para que o navegador saiba renderizar os bytes como um PDF em vez de tratá-los como texto qualquer.

Em qualquer lugar em que se espera uma URL — um atributo src ou href, por exemplo — um data URI funciona porque ele próprio é um esquema de URL válido.

Quando a String Base64 Pura Basta

Dentro de um campo de API JSON, uma coluna de banco de dados ou um arquivo de configuração, o tipo de conteúdo geralmente é informado por um campo separado, então o prefixo seria redundante — e colá-lo em um campo feito para Base64 puro corrompe o valor. Veja como usar um PDF em Base64 em uma requisição de API JSON para entender como esses campos costumam ser estruturados.

Convertendo Entre os Dois

Adicionar o prefixo data:application/pdf;base64, antes de uma string Base64 pura a transforma em um data URI. No caminho contrário, remover tudo até a primeira vírgula, incluindo ela, transforma um data URI de volta na string pura.

As duas formas codificam e decodificam da mesma maneira por baixo dos panos — veja como funciona a codificação Base64 para a mecânica, e o glossário de Base64 e PDF para definições rápidas dos dois termos.