Anstatt PDF herunterzuladen, wie kann man PDF dazu zwingen, nur im Browser geöffnet/angesehen zu werden?

Immer wenn ich eine PDF hochlade, wird sie im Thema wie folgt angezeigt:

image

Ich verwende Inline PDF, um sie in der Desktop-Version anzuzeigen. Auf mobilen Geräten funktioniert Inline PDF jedoch nicht. Außerdem erkennen Google und andere Suchmaschinen die PDF-Dateien automatisch, aber wenn Benutzer auf diese Ergebnisse klicken, erscheint das PDF-Download-Dialogfeld anstatt der Datei in einem neuen Tab zu öffnen. Das ist etwas unpraktisch, und die meisten Benutzer bevorzugen es, die PDF online anzusehen, anstatt sie herunterzuladen und lokal zu öffnen.

Gibt es eine Lösung dafür?

HINWEIS: Ich habe dieses Thema gesehen: PDF onebox instead of download, on uploaded files, aber es wurde ohne Bezug zur ursprünglichen Frage abgeschlossen. Daher dieses neue Thema.

Danke, dass du diese Frage aufgeworfen hast! Ich bin auch neugierig, die Antwort zu erfahren!

PDF auf Google Drive einbetten

PDFs werden sowohl auf Mobilgeräten als auch auf Desktops angezeigt.

(Meine bevorzugte Methode, damit PDFs in iFrames auf jedem Gerät als responsiv angezeigt werden)

  1. Teilen
  2. Freigabelink kopieren
  3. Freigabelink in einem neuen Tab öffnen
  4. Klicken Sie auf die 3 vertikalen Punkte in der oberen rechten Ecke
  5. Element einbetten auswählen
  6. Kopieren Sie den angezeigten iFrame-Code
  7. Fügen Sie ihn in den Discourse-Composer / Editor ein

Desktop-Beispiel…

Mobil-Beispiel…

Inline-PDFs funktionieren bei mir auch auf dem Desktop nicht.

Ich bin teilweise erfolgreich beim Anzeigen von PDFs inline, wenn ich sie zu FileHelper.inline_images hinzufüge

Aber dann wird ein Parameter „inline=1“ benötigt:

Dies könnte in einer Theme-Komponente hinzugefügt werden (Inline PDF Previews).

Ich würde gerne einen sauberen Weg lernen, Discourse so umzuschalten, dass PDFs mit content-disposition: inline über ein Plugin oder eine Konfigurationsoption bereitgestellt werden.

Ich habe es geschafft, ein kleines Plugin für diesen Zweck zu schreiben: