2016-11-14 5 views
0

Я храню pdf-файлы как файлы болтовни в нашем SF org, который работает хорошо, за исключением того, что отображение этих PDF-файлов для пользователей очень сложно, особенно на мобильном устройстве (например, ipad) Я отследил несколько хороших javascript PDF-зрителей, которые будут хорошо вести себя на ipad. Задача состоит в том, чтобы предоставить файл PDF от этих зрителей.Показать PDF из файлов болтовней в Visualforce Page

Большинство из них требует локального файла в формате PDF для просмотра, но есть некоторые, как точки зрения Google, который будет принимать URL в формат PDF для например https://docs.google.com/viewer?url=https://urltopdf

Ф доступен через болтовня GET следующим образом: https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/content? versionNumber = 1 Проблема в том, что мне нужно передать заголовок аутентификации. Если я просто передаю этот URL-адрес в google viewer, он терпит неудачу из-за аутентификации, поскольку он не проходит в заголовке Auth.

Я попробовал несколько вещей ..

  • Встроенный прокси API в Salesforce, который Google телезрителя звонков, что API вызывает вибрацию, а затем возвращает файл в Google Docs просмотра ПРОБЛЕМА: Пользовательские интерфейсы SF имеют ограничение 6 мб, что означает, что если PDF-файл больше 6 МБ, он не будет работать!

  • Встроенный проксите API внешнего по отношению к SF (чтобы обойти ограничение 6MB), включая некоторые интересные способы упорствуют аутентификацию ПРОБЛЕМЫ: Есть слишком много хмеля и зритель Google не получает обратно данные во время ... его вызов внешнего API-интерфейса прокси, который затем вызывает API-интерфейс chatter, который затем должен вернуть данные PDF обратно в внешний API-интерфейс прокси, а затем вернуться в Salesforce (смешно, что я знаю).

Так я застрял ..... я подумал, что, как пружины 13' Chatter API доступен без какой-либо специальной проверки подлинности с Javascript на странице VF. Это правда? Будет ли этот url работать без заголовка auth при вызове из javascript на странице VF? https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/content? VersionNumber = 1 Он, похоже, не работает для меня и определенно не работает при просмотре через google viewer.

Был бы очень признателен за любые предложения, как это сделать? Спасибо

ответ

1

Пожалуйста, не ненавидите меня, я пытаюсь получить репутацию.

Вы можете запросить статические ресурсы для docid и загрузить файл по запросу ajax на странице VF.

После этого его вопрос использования данных: image/png; base64 добавлен в base64, чтобы добавить его в холст. Вы также можете добавить тег загрузки на холст, чтобы он загружал или открывал его в другом окне, чтобы дать пользователю браузер pdf explorer.

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

Я надеюсь, что это поможет.

+0

У меня есть пример кода, который делает это, я выкопаю его, если вы захотите его попробовать. –

+0

Прошел через это ...Я не помню точную проблему, но это было по крайней мере одно или все из следующих . Вы быстро попали в пределы Salesforce, когда pdf-файл среднего и большого размера, - не работает во всех браузерах, - возникли проблемы с мобильными устройствами – Gotts