XPages:嵌入PDF和可能的Office文件



我需要在xpage应用程序中嵌入PDF文件。我们正在使用IE11 x64,这一点无法更改。最终,我还需要嵌入MS Office文件(Word、Excel、Power Point)。

我看了很多页,但找不到一个有效的解决方案。。。如果我在IE10模式下强制使用IE11,我有一些代码可以工作,但Dojo开始表现得很奇怪(无法关闭对话框,…)

我现在在计算字段中的代码如下:

var id:string = pageDocument.getDocument().getUniversalID();
var attNames = @AttachmentNames();
var url = getAttachmentURL(id,attNames);
'<object data="' + url + '#view=Fit&pagemode=none&statusbar=0&messages=0"' + 
'type="application/pdf" width="100%" height="100%" > ' + 
'<p>It appears your Web browser is not configured to display PDF files.  ' +  
'No worries, just <a href="' + url + '">click here to download the file.</a></p>'+
'</object>'

我需要一个免费的解决方案。

IBM,如果我们想与SharePoint竞争,这应该很容易,不是吗???

简短的回答是:不用麻烦。

长话短说:虽然你可能会让它在IE11中用于PDF,但你的老板不会高兴,因为它不会显示在她的iPad上,所以你需要有一个B计划。…还有另一个问题(阅读下文)。这就是我要做的:

  • 使用ApachePDFBbox从PDF中提取文本,并在XPage中显示
  • 向页面添加链接以打开整个PDF
  • 对使用Apache POI的办公文档执行同样的操作,最终使用OpenNTF POI4XPages
  • 下载链接应该使用WebDAV for Domino来允许双向编辑

为什么所有这些模糊:

  • 您的用户将在某个时间点使用移动设备,NO移动浏览器不支持嵌入(Mac上的任何浏览器也不支持嵌入)
  • 即使你成功地使嵌入工作,用户也会开始编辑嵌入的文档,并且因为你没有保存回更改而感到非常不安

附带说明:要求IBM支持在一个浏览器中工作的供应商专有技术(这是未来更新的EOL,请参阅Spartan项目)是不会发生的。

我在IE11中用这行非常简单的代码很好地处理了PDF文件:

<embed src="MyPDFFile.pdf" width="640px" height="755px" alt="pdf"  />

我同意Stephen的回答:我不想麻烦他处理Office文件。它将为我们的"Notes is bad"用户提供一些迁移到SharePoint的弹药,但我们还有其他优势!

我尝试使用Bumpbox和pdf.js,虽然我可以让它们工作,但iframe似乎最适合我在xpages 中使用正常的Domino附件URL

我不确定这个解决方案是否正确,但它适用于我的一个只有PDF的应用程序。它在移动设备上也能工作,至少在iOS上是这样。

<iframe
src="#{javascript:
var url = 'https://app.nsf/';
var doc = sessionScope.docID;

var atname = @RightBack(sessionScope.aname,'Body');

var end = '/$file'+atname;
return url+doc+end}"
width="800" height="1000">
</iframe>

可能最好的方法是使用纯HTML5/JavaScript渲染器对于没有任何第三方插件的PDF文档(例如PDF.js)

如需进一步讨论,请查看以下stackoverflow条目推荐在html 中嵌入pdf的方法

在我看来,这是将商业产品(如番红花)用于其他文档(如MS Office(Word、Excel等)的最佳方式。

最新更新