2016-11-14 36 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

相关问题