2016-08-26 4 views
2

Я использую force.com, и мне нужно встроить в него файл PDF болтовни, расположенный на странице (а не как загрузку). У меня нет никакой связи прямого доступа к PDF и единственный способ, чтобы получить в самом файле с помощью покоя вызова, например, дляОтображение ответа API REST как inline pdf (не загружаемый файл)

/услуги/файлы/FILEID/содержание

Это возвращает двоичные данные в формате PDF, который я тогда хотите встроить в веб-страницу. На основе различных ответов stackoverflow я получил несколько хороших идей, как это сделать, и pdf открывается на странице, за исключением того, что его пустое - то есть у него нет контента. Он имеет правильное количество страниц, но текст не отображается.

Если я запускаю скрипач во время выполнения этого запроса, а затем сохраняю ответ в виде файла, файл отлично смотрится. Но по какой-то причине ответ, поступающий на запрос ajax и отправляемый в браузер, не годится. Я подозреваю, что это имеет какое-то отношение к какой-то кодировке, которую я должен делать, чтобы правильно доставлять данные в формате pdf в браузер.

Поймите ли вы какие-либо предложения здесь или даже разные подходы - попробовали много разных, и это самое близкое, что я получил, но снова заблокирован.

Это мой код делает вызов API и отображение в браузере:

$.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' 
}); 

Это открывает страницу, которая выглядит следующим образом: (примечание: это имеет правильное количество страниц) enter image description here

Несмотря на то, что, когда я смотрю на скрипач по этому запросу и сохраняю тело ответа как файл, он хорош!

Пожалуйста, помогите. Thanks

+0

Эй, я столкнулся с теми же проблемами. Вы случайно не знаете причину своего? благодаря – luciferche

ответ

0

Этот вопрос выглядит довольно старым, но поскольку я только что наткнулся на эту проблему, я подумал, что пойду и поделюсь своим решением.

Моим решением было включить не только ContentType как «application/pdf», но и включить ContentDisposition как «inline».