在上一篇文章(Office Web Apps Server 2013与PDF(一))中,曾经介绍了Office Web Apps Server 2013在更新后,可以直接对PDF文档进行在线的查看。不过文章中还遗留了两个小问题:
1、搜索结果页面的PDF文档预览
2、文档库视图页面的PDF文档预览
本文主要就关注在这两个问题上。
首先来看搜索结果页面。2013在搜索结果页面中,如果集成了Office Web Apps,默认对Office文档提供了预览功能,当鼠标移动到搜索结果的一个文档上的时候,会出现如下图所示的文档预览:
但如果是一个PDF文档的话:
当我们的Office Web Apps Server 2013支持了PDF文档预览功能之后,并不会改变搜索结果预览的默认行为,需要我们手动进行配置。在SharePoint 2013中,搜索结果的样式是通过结果类型对应的模板(一个由html自动生成的js文件)来渲染的,我们只需要修改PDF文件对应的模板即可。
最简单的方法,就是直接利用Word的显示模板来显示PDF文件(Office Web Apps是通过Word Web App来渲染PDF的,还记得么?)。
进入网站设置,在搜索区域中,进入“结果类型”:
这里面会列出所有自定义和SharePoint内置的结果类型,其中已经默认包含了PDF的结果类型,不过这个默认类型我们是无法修改或删除的,但是可以复制它,强制使用我们复制的那个结果类型。在结果类型界面中,找到PDF,并复制:
在“操作”部分,把显示模板从“PDF 项”直接修改为“Word 项”,并把结果类型的名字改成一个有意义的名字,比如“PDF with Preview”,然后保存。
(请无视那个糟烂的翻译……英文版里面对应的是:What should these results look like)
然后……啊nia……木有效果……重启IIS……木有效果……重新把PDF爬网了一下,好了(后来看了一下模板里面的代码,里面有个EmbeddedUrl、PreviewUrl之类的属性,应该是需要重新爬网来生成的)。效果如下:
在参考链接中,还有一种更“标准”的方法,就是直接修改PDF文件的预览模板。其实也不算太复杂,直接照着Word的那个改就行了,有兴趣的可以尝试一下。
OK。第二件事,就是在列表视图中的预览,对于一个Word文档是这样的:
但是PDF文档默认则是这样的:
这个修改需要写一些js脚本放到页面中,如下:
function () {
3: filePreviewManager.previewers.extensionToPreviewerMap.pdf =
4: [embeddedWACPreview, WACImagePreview];
5: embeddedWACPreview.dimensions.pdf= { width: 379, height: 252}
);
7: }
);