Forcer le téléchargements des PDF avec Apache

Il y a des logiciels stupides *tousse* Adobe Reader[1] *tousse* Internet Explorer *tousse* qui insistent sur le fait d’incruster des documents PDF dans le navigateur web de l’utilisateur, au lieu de les télécharger et les ouvrir dans une nouvelle fenêtre. Ceci a pour désavantage notable de ralentir le navigateur et de casser son historique (ex: avec Adobe Reader et Firefox, l’utilisateur qui clique sur un lien voit sa fenêtre contenant le PDF disparaître au profit du lien).
Dans le cas du Psy-chose, c’est particulièrement important pour des raisons de débit. Je ne veux pas que mes lecteurs lisent des documents de 2 Mio sans les télécharger au préalable. Eh bien, on peut fignoler pour qu’Apache force le téléchargement. Sous Ubuntu, il faut d’abord activer le module “headers”:
sudo a2enmod headers && sudo /etc/init.d/apache2 reload
Ensuite, dans un fichier .htaccess (ou la configuration d’un vhost), ajouter ceci:
<FilesMatch "\\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>

À savoir qu’un utilise ici le mimetype “octet-stream” au lieu de “pdf”, parce que cet idiot d’Internet Explorer ignore le “Content-Disposition attachement” (à ce qu’il paraît).
[1]: j’ai d’ailleurs découvert que cette bestiole (Adobe Reader) nécessite 232 Mio d’espace disque une fois installé sous Windows. Pour référence, Evince nécessite 6.4 Mio. Quand je pense que Adobe Premiere nécessite environ 2 Gio vis-à-vis de Sony Vegas qui utilise un peu moins de 200 Mio, je me demande sérieusement comment il est possible que Adobe soit encore en vie. Du bloatware pareil, c’est criminel.

Vus : 34
Publié par Kiddo : 87