Moi je comprends bien ce que tu veux, mais c'est toi qui ne comprends pas comment ça marche.
Ton fichier PDF étant enregistré dans ta base de données, tu dois passer par un script pour l'afficher. Jusque là, tout le monde est d'accord.
Par contre, il faut différencier le script qui affiche la page sur laquelle figure l'icone avec le lien pour télécharger, et le script qui va effectivement aller chercher le fichier PDF dans la base de données et le renvoyer au navigateur.
Un script PHP ne peut pas à la fois afficher du texte, du PDF, une image, etc.
C'est soit l'un, soit l'autre.
Ca peut être le même script, en réalité, mais il ne peut faire qu'une seule chose à la fois, renvoyer un seul type de données à la fois.
Donc d'abord, tu affiches du HTML.
Le lien sur l'icone PDF doit renvoyer vers le script qui va aller chercher le contenu du fichier PDF dans la base de données.
C'est ce script qui enverra les headers correspondants, c'est à dire :
header('Content-type: application/pdf');pour laisser le navigateur gérer la manière dont le fichier est traité par l'utilisateur (affiché dans un plugin, téléchargé...)
Ou bien :
header('Content-type: application/force-download');
pour forcer le téléchargement du fichier.
Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...