Page 1 of 1

PDF Inline anzeigen [Erledigt]

Posted: 26. Jun 2019, 15:49
by Steinbit
Liebe Community,

ich versuche ein PDF File, welches im Matrix42 System abgelegt und gespeichert ist über ein <IFrame> oder <object/embed> anzeigen zu lassen, ohne es vorher woanders lokal oder auf dem Server zwischenspechern zu müssen.

/* Beispieldatei */
<html>
<head>
</head>
<body>
<embed width="800px" height="400px" type="application/pdf" data="https://server/sps/Forms/AttachmentHand ... d506343cc7">
</embed>
<embed width="800px" height="400px" type="image/gif" src="https://server/sps/Forms/AttachmentHand ... 5bac86b3fb" ></embed>
</body>
</html>

Über den AttachmentHandler kann ich die Datei mit Hilfe der FileID und ObjectId + TypeID aufrufen. Jedoch gibt der RespondHeader den Content-Disposition als Attachment zurück - d.h. die Datei wird lokal heruntergeladen. Ich bräuchte jedoch die Datei eingebunden. Mit GIFs geht es leider auch so. Das Embed-Element jedoch bleibt leer.

Gibt es ggf. noch einen optionalen Paramenter wie "Embed=true" oder hat jemand eine andere Lösung?

Vielen Dank.

Re: PDF Inline anzeigen

Posted: 17. Jul 2019, 08:35
by Sven_Puth
Hast du es mal mit <object type="application/pdf" data="..."> statt <embed> versucht?

Re: PDF Inline anzeigen

Posted: 29. Aug 2019, 07:54
by Sven_Puth
Nachtrag: Was mir zu dem Thema aufgefallen war. Wenn man die Daten via data="" als Base64 Code mitgibt, ist man in der Dateigröße des PDFs eingeschränkt. Bei Dateien mit mehr als 3-4mb wird der Parameter zu lang und kann im Hintergrund nicht mehr an die Webservices in der URL übergeben werden.0
Ich bin dann auf eine Lösung mit https://mozilla.github.io/pdf.js/ gegangen, um einen Dateilink an einen PDF Renderer zu übergeben, der dieses dann wiederum auf ein Canvas Objekt in einem HTML Element rendert.

Re: PDF Inline anzeigen [Erledigt]

Posted: 17. Jan 2020, 14:56
by Steinbit
Hallo Zusammen,

ich konnte nach einiger Zeit eine Lösung erarbeiten, ohne ein Zusatzaddon oder Veränderungen am System funktioniert.

var server = window.location.hostname;
var fileId = 'YourFileGUID'

var xhr = new XMLHttpRequest();
// load `document` from `cache`
xhr.open('GET', 'https://' + server + '/m42Services/api/filestorage/' + fileId + '/', true);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status === 200) {
// `blob` response
var blob = new Blob([this['response']], {type: 'application/pdf'});
var file = window.URL.createObjectURL(blob);
document.querySelector('iframe').src = file;
}
};
xhr.send();

Re: PDF Inline anzeigen [Erledigt]

Posted: 18. Nov 2022, 16:19
by HenningBressem
Hallo @Steinbit,

könntest du bitte ein wenig näher erläutern, wie deine Lösung einzubinden ist?

Vielen Dank!

Re: PDF Inline anzeigen [Erledigt]

Posted: 21. Nov 2022, 08:40
by hoeni
HenningBressem wrote: 18. Nov 2022, 16:19 Hallo @Steinbit,

könntest du bitte ein wenig näher erläutern, wie deine Lösung einzubinden ist?

Vielen Dank!
Mit dem letzten Update hat Matrix einen Inline Reader eingebaut, der PDFs in einem neuen Tab direkt aus der Datenbank anzeigt.

Re: PDF Inline anzeigen [Erledigt]

Posted: 21. Nov 2022, 11:05
by HenningBressem
Das hört sich spannend an, von welcher Version genau sprichst du bitte, nur zur Sicherheit ?

Viele Grüße.

Re: PDF Inline anzeigen [Erledigt]

Posted: 21. Nov 2022, 11:40
by hoeni
HenningBressem wrote: 21. Nov 2022, 11:05 Das hört sich spannend an, von welcher Version genau sprichst du bitte, nur zur Sicherheit ?

Viele Grüße.
Das ist Version 11.0.2 und wird hier auch gezeigt:
https://youtu.be/At2K6RRDQaY?t=319

Re: PDF Inline anzeigen [Erledigt]

Posted: 21. Nov 2022, 12:12
by HenningBressem
Hängt diese Funktion zufällig an der DWP Lizenz?