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.