2016-08-26 5 views
2

Ich verwende force.com und muss eine Chatter-PDF-Datei inline in die Seite einbetten (nicht als Download). Ich habe keinen direkten Zugriff Link zum pdf und der einzige Weg, um die Datei selbst über einen Rest Aufruf zB zu bekommenAnzeigen der REST-API-Antwort als Inline-PDF (nicht heruntergeladene Datei)

/services/files/fileid/content

Dies gibt binäre pdf-Daten, die ich dann möchte in die Webseite einbetten. Basierend auf verschiedenen Stackoverflow-Antworten habe ich einige gute Ideen, wie dies zu tun ist und das PDF öffnet sich auf der Seite, außer dass es leer ist - dh es hat keinen Inhalt. Es hat die richtige Anzahl an Seiten, aber es wird kein Text angezeigt.

Wenn ich fiddler laufen lassen, während diese Anfrage geschieht, und dann die Antwort als Datei speichern, sieht das PDF gut aus. Aber aus irgendeinem Grund ist die Antwort, die auf die Ajax-Anfrage kommt und an den Browser geliefert wird, nicht gut. Ich vermute, dass es etwas mit einer Art von Codierung zu tun hat, die ich tun muss, um die PDF-Daten korrekt an den Browser zu liefern.

Würde wirklich irgendwelche Vorschläge hier oder sogar unterschiedliche Annäherungen schätzen - haben viele verschiedene versucht und dieses ist das nächste, das ich bekam, aber wieder blockiert werde.

Dies ist mein Code, um den API-Aufruf zu machen und im Browser angezeigt wird:

$.ajax({ 
url: "/services/data/v35.0/chatter/files/069R0000000O8reIAC/content?versionNumber=1", 
headers: {"Authorization": "OAuth xxxxxxxxxxxx"}, 
contentType: "application/pdf", 
success: function(data) 
{ 

     var blob = new Blob([data], {type: "application/pdf"}); 
     window.open(URL.createObjectURL(blob));  

}, 
type: 'GET' 
}); 

Diese eine Seite öffnet, die wie folgt aussieht: (Anmerkung: Es hat die richtige Anzahl der Seiten) enter image description here

Auch wenn ich fiddler auf diese Anfrage schaue und den Antworttext als Datei abspeichern, ist das pdf gut !!

Bitte helfen. Danke

+0

Hey, ich stieß auf dieselben Probleme. Kennst du zufällig den Grund für deinen? Vielen Dank – luciferche

Antwort

0

Diese Frage sieht ziemlich alt aus - aber da ich gerade auf dieses Problem gestoßen bin, dachte ich, ich würde weitermachen und meine Lösung teilen.

Meine Lösung bestand darin, nicht nur den ContentType als "application/pdf", sondern auch ContentDisposition als "inline" einzubinden.

Verwandte Themen