Au lieu de télécharger le PDF, comment forcer l'ouverture/la visualisation du PDF uniquement dans le navigateur ?

Quand j’uploade un PDF, il s’affiche dans le sujet comme suit :

image

J’utilise Inline PDF pour l’afficher dans la version bureau. Cependant, sur mobile, Inline PDF ne fonctionne pas. De plus, Google ou d’autres moteurs de recherche détectent automatiquement les fichiers PDF, mais lorsque l’utilisateur clique sur ces résultats, la fenêtre de téléchargement du PDF s’affiche au lieu de l’ouvrir dans un nouvel onglet. C’est un peu peu convivial et la plupart des utilisateurs préfèrent consulter le PDF en ligne plutôt que de le télécharger et de l’ouvrir depuis un emplacement local.

Existe-t-il une solution à cela ?

REMARQUE : J’ai vu ce sujet PDF onebox instead of download, on uploaded files, mais il s’est terminé sans lien avec la question initiale. D’où ce nouveau sujet.

Merci d’avoir soulevé cette question. Je suis aussi curieux de connaître la réponse !

Intégrer un PDF stocké sur Google Drive

Les PDF s’affichent sur mobile comme sur ordinateur.

(Ma méthode préférée pour que les PDF dans les iFrames s’affichent sur n’importe quel appareil de manière responsive)

  1. Partager
  2. Copier le lien de partage
  3. Ouvrir le lien de partage dans un nouvel onglet
  4. Cliquer sur les 3 points verticaux dans le coin supérieur droit
  5. Sélectionner « Intégrer l’élément »
  6. Copier le code iFrame affiché
  7. Le coller dans le compositeur / éditeur de Discourse

Exemple sur ordinateur…

Exemple sur mobile…

Le PDF inline ne fonctionne pas non plus pour moi sur le bureau.

Je réussis partiellement à afficher les PDF en ligne lorsque je les ajoute à FileHelper.inline_images

Mais ensuite, un paramètre « inline=1 » est nécessaire :

Cela pourrait être ajouté dans un composant de thème (Inline PDF Previews).

J’aimerais apprendre une manière propre de faire en sorte que Discourse serve les PDF avec content-disposition: inline en utilisant un plugin ou une option de configuration.

J’ai réussi à écrire un petit plugin à cet effet :