2016-11-14 73 views
0

我在我們的SF格式文件中存儲PDF格式的文件,除了向用戶顯示這些PDF格式非常具有挑戰性,尤其是在移動設備上(例如ipad) 我已經追蹤了一些很好的JavaScript PDF瀏覽器,這些瀏覽器在ipad上的表現相當不錯。 面臨的挑戰是向這些觀衆提供PDF文件。在Visualforce中顯示PDF格式的顫音文件頁面

他們中的大多數需要一個本地的PDF文件瀏覽,但也有一些像谷歌視圖,將採取一個url到PDF的如 https://docs.google.com/viewer?url=https://urltopdf

的PDF可通過喋喋不休GET如下: https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/content?versionNumber = 1 課程的問題是我需要傳入一個驗證標題。如果我只是將該網址傳遞給Google查看器,則由於身份驗證未通過身份驗證標頭而失敗。

我嘗試了一些東西..

  • 建在Salesforce代理的API,谷歌瀏覽器的調用,API調用喋喋不休,然後返回文件到Google文檔查看 問題:自定義的API SF有一個6mb的限制,這意味着如果pdf大於6mb,它不會工作!

  • 內置包括一些有趣的方式來保留身份驗證 問題的代理API外部SF(以繞過6MB限制):有太多的啤酒花和谷歌的瀏覽器沒有得到及時趕回數據...它調用外部代理API,然後調用chatter API,然後必須將pdf數據返回到外部代理API,然後返回到Salesforce(我知道荒謬)。

所以我堅持..... 我認爲,作爲彈簧13' 顫API的是沒有從Javascript一個VF頁面上的任何特殊身份驗證訪問。 這是真的嗎? 在VF頁面上從javascript調用此URL時,沒有任何auth頭文件嗎? https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/content?versionNumber = 1 它似乎不適用於我,絕對不會工作時,通過谷歌瀏覽器去。

真的很感激任何建議如何做到這一點? 謝謝

回答

1

請不要恨我,我想獲得一些代表。

您可以查詢docid的靜態資源,並通過VF頁面上的ajax請求加載文件。

之後,它使用data:image/png; base64添加到base64將其添加到畫布。您也可以在畫布上添加一個下載標籤,以便在另一個窗口中下載或打開它,這將爲用戶提供瀏覽器PDF瀏覽器。

如果您使用畫布,請在調整大小時使用Safari小心。如果你得到一個非常長的數字,它會在畫布上廢棄。我花了幾個小時在那個。

我希望有幫助。

+0

我有一些這樣做的示例代碼,如果你想嘗試,我會把它挖起來。 –

+0

經過了...我不記得確切的問題,但它至少是以下一種或全部: - 當pdf大小適中時,您很快遇到銷售人員限制, - 在所有瀏覽器中都不工作, - 在移動設備上遇到問題 – Gotts

相關問題