Hola, como dice el compañero podes codificar el archivo PDF en base64 y guardarlo o también podes comprimirlo con ultra compresión y luego a ese archivo comprimido convertirlo en base64.
Alguna vez tuve la idea de crear un método para guardar archivos en por ejemplo bases de datos o en archivos de solo texto usando base64 para lograr ésto y crear un software que haga el trabajo.
La idea es básicamente usar la forma de repetición de caracteres que tiene la codificación cuando codifica un archivo y reemplazar esas letras repetidas por una letra igual que las repetidas y un número al lado de ellas para que el programa pueda saber en cuantas veces va a multiplicar esa letra.
Cuando se convierte un archivo binario ejecutable (.exe) a base64 suelen haber muchas letras repetidas por ejemplo:
aHHHHHHHR0cHM6Ly9mb3JvLmVsaGGGGGGGGGFja2VyLm5ldC9kZXNNNNNNNNNNNNNNNNNNNNNNNNhcnJvbGxvX3dlYi9jb21vX3N1Ym9fdW5fcGRmX2FfbW9uZ29fZGJJJJJJJJJJJJJJJJJfYXRRRRRRRRRsYXNfeV9jb21vX2hhZZZZZZZZZZZZZZZZZZZZZZZ29fdW5fYm90b25fZWWWWWWWW5fbWlfd2ViX3BhcmFfcXVlX2xhX2dlbnRRRRRRRRRRRRlX2xvX2Rlc2Nhcmd1ZS10NTExNTY5LjAuaHRtbAAAAAAAAAAAAAAAAAAAAA==
La idea básicamente era por ejemplo reemplazar ésto:
AAAAAAAAAAAAAAAAAAAAA
por esto:
A_21
Para que después el software pueda saber que debe multiplicar esa letra (en este ejemplo la A) por 21 veces quedando:
AAAAAAAAAAAAAAAAAAAAA
Tal vez esto no tenga sentido o no funcione o tal vez si pero bueno al menos alguna vez se me ocurrió ese método de compresión de archivos binarios codificados en base64.
Saludos