La réponse est "non" à toutes les questions parce que.
La première version d'un pdf remonte au siècle précédent. Il y a eu beaucoup de versions depuis, avec à chaque fois des petites bidouilles pour ajouter de nouvelles fonctionnalités. La compatibilité a toujours été conservée, ce qui est une bonne chose quand on a des vieux fichiers pdf, mais au niveau interne, on se retrouve avec un ca-chaos en plusieurs couches successives, parfois un peu redondantes ou contradictoires, peut-être un peu comme dans mon cerveau hippie. Bref, les fichiers PDF sont très complexes, et donc très difficiles à décrypter.
La structure est une arborescence. Chaque node est appelé "un objet" par Adobe, mais ça n'a rien à voir avec la "programmation objet", car les "objets" pdf existaient avant le C++ et Java.
Déjà pour mettre à plat cette arborescence, ce n'est pas facile. Les tableaux de généalogies sont souvent plus simples que les arbres contenues dans les fichiers .pdf. Chaque node peut se trouver n'importe où dans le fichier, car il y a un index pour le retrouver. Mais en fait, il peut y avoir plusieurs index chainés pour accélérer la lecture : un index pour la première page, et un autre index pour le reste des pages, par exemple. Il peut y avoir un index pour le document original, et un autre index créé lors d'une modification parce que c'est plus rapide d'ajouter des index plutôt que de recréer l'index en entier, etc.
Chaque node peut être compressé, mais ce n'est pas obligatoire, brother. Dans la réalité, on constate effectivement que dans environ 90% des fichiers pdf, les nodes sont compressés.
Il y a beaucoup d'outils pour décompresser des fichiers entiers, mais pas ou très peu pour décompresser des parties de fichier. En plus, le PDF permet une douzaine de sortes de compressions différentes (deflate, fax, zlib, huffman, etc.), et en pratique, on voit beaucoup de types différents.
Pour mon usage personnel (dans un bac à fleur sur mon balcon), je me suis programmé un logiciel qui décompresse les nodes qui sont compressés d'une certaine manière. Il ne marche que pour 10% des fichiers pdf, et donc je ne le diffuse pas, car beaucoup de brothers et de sisters me reprocheraient que ça ne marche pas avec leurs fichiers à eux. Mais pour mon plaisir particulier, ça me donne satisfaction, I can't get no.
Ensuite, une fois que les nodes sont décompressés, ils ne sont pas toujours très compréhensibles. Par exemple, chaque caractère peut être remplacé par un autre, ou par un index, etc. C'est utile pour la gestion des lettres accentuées, des signes mathématiques, etc. Le codage n'est ni en ascii ni en unicode, mais en un mélange de plusieurs choses, qui dépend du logiciel qui sert à faire le pdf.
Mais il ne faut pas s'affoler, car les pdf contiennent en fait rarement des scripts, et ceux qui en contiennent n'ont pas forcément de failles.
L'incorporation des scripts s'est faite au début d'internet, mais n'a pas eu le succès escomptée. Donc, c'est un peu une fonctionnalité obsolète. Mais comme Adobe veut (avec raison) maintenir la compatibilité, la possibilité d'avoir des scripts est conservée.
Les bons antivirus savent explorer un peu les pdf, et peuvent repérer ceux qui seraient infectés.
P.S. Sans vouloir t'offenser, sais-tu qu'en français, il faut une lettre majuscule au début de chaque phrase ?
Bien à toi et à ta tribu, amour et paix.