在IFRAME中嵌入Google Docs PDF查看器
当我把PDF文件上传到Google Docs(使用Python的gdata库)时,我得到了一个文档的链接:
>>> e.GetAlternateLink().href
Out[14]: 'http://docs.google.com/a/my.dom.ain/fileview id=<veery-long-doc-id>&hl=en'
可惜的是,使用这个链接在IFRAME中显示不成功,因为PDF查看器会自动跳转到自己,导致IFRAME失效。
在寻找解决办法时,我发现了这个链接:http://googlesystem.blogspot.com/2009/09/embeddable-google-document-viewer.html - 看起来很不错,但我找不到方法将其与上传到Google Docs的文档一起使用。有没有人知道怎么做,或者这是否可能呢?
6 个回答
试试这个!
和上面其他答案一样...
<iframe src="https://docs.google.com/gview?url={magical url that works}"></iframe>
不过那个有效的链接
是https://drive.google.com/uc?id=<docId>&embedded=true
。
Google Drive/Docs提供了很多不同的链接:
https://drive.google.com/open?id=<docId>
这是分享链接。https://docs.google.com/document/<docId>/edit
在Google Drive中打开。https://docs.google.com/document/d/<docId>/view
和上面的'编辑'差不多。我觉得。https://docs.google.com/document/d/<docId>/pub?embedded=true
如果你选择文件 -> 发布到网页...
,可以用来嵌入到iframe中。https://drive.google.com/uc?export=download&id=<docId>
直接下载链接。
我在尝试了很多不同链接后偶然发现了这个解决方案。希望这对你有帮助!
如果你想把存放在谷歌文档里的PDF文件嵌入到你的网站中,可以使用下面的代码:
<iframe src="http://docs.google.com/gview?a=v&pid=explorer&chrome=false&api=true&embedded=true&srcid=<id of your pdf>&hl=en&embedded=true" style="width:600px; height:500px;" frameborder="0"></iframe>
顺便说一下,我还没找到什么办法能让“内部”的谷歌PDF查看器不跳出iframe。正如我在问题中提到的,我发现了一个不错的独立查看器:https://googlesystem.blogspot.com/2009/09/embeddable-google-document-viewer.html,可以这样使用:
<iframe src="https://docs.google.com/gview?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true" style="width:600px; height:500px;" frameborder="0"></iframe>
-- 但要使用这个查看器,你得把你的PDF发布到外面去。这其实也不是个坏主意,因为发布后的文档有一个独特的ID,可能比谷歌文档账户的密码更难猜。不过,遗憾的是,即使是最新的谷歌文档API版本3,似乎也没有办法通过编程来发布PDF。
最后,我选择了结合使用谷歌的独立PDF查看器和其他一些可以通过编程上传和发布PDF的网络服务。这个方案有点不完善,但目前为止效果还不错。