GroupDocs.Viewer是一个在线文档查看器,不管是否安装了创建某个文档的软件,GroupDocs.Viewer都允许使用浏览器查看这个文档。GroupDocs.Viewer支持查看多种文件文档(DOC、DOCX、TXT、RTF、ODT),演示文档(PPT、PPTX),电子表格(XLS、XLSX),便携式文件(PDF)以及图像文件(JPG、BMP、TIFF)。

点击下载GroupDocs.Viewer试用版


我们这个项目就是探寻一款干净简便的HTML5文档查看器,关于这方面的产品是很多的,所以这个探索过程是很繁琐的,很多人的第一想法就是是使用Google Docs Viewer或类似的解决方案,但由于应用程序将在客户端Intranet上运行,申请和文件都不允许暴露在互联网上,所以这是不可行的。

经过探讨,我们制定了以下标准:

  • 适用于Windows Server和.NET。

  • 支持PDF,包括新旧MS Office格式。

  • 在不离开触摸应用程序环境的情 最好支持从URL或.NET流中读取文档。

  • 无需在客户端计算机上安装额外的插件。

探索

接下来就是大量的研究探索,最终我们寻找到了三个备选产品。

Accusofts Prizm Client Connect 

这款产品符合我们的大多数标准,支持各种格式,但有一些缺点。它需要安装一个单独的服务器来进行文档转换。从他们提供下载的示例项目来判断,它需要编写大量代码才能使其打勾。除此之外,它只提供从文件路径加载文档的可能性。

Snowbounds Virtualviewer

这款产品的必须作为服务器上的单独网站运行,可以通过添加提供程序来扩展文档的加载方式,在示例项目中支持文件和URL。但是用户界面有点拥挤,视觉体验不太好,而且还有许多不常用的功能。

虽然这两种产品可能已经完成了这项工作,但我测试的第三种产品能够弥补以上两种产品的缺点。

GroupDocs Viewer for .NET

与其他产品相比,这是很轻便的一个产品,只需添加一个DLL即可,它有一个非常简洁的API。 最初不支持我们想要的打印的要求,但在与Groupdocs.交谈并解释需要的功能后,他们很快就推出了解决它的新版本。

添加代码

在ASP.NET MVC应用程序中使用GroupDocs Viewer,必须完成四个步骤。

第一步:引用dll到项目中去

第二步:将以下项目加入Global.asax.

Viewer.InitRoutes();
Viewer.SetRootStoragePath(Server.MapPath("SomePath")); // Documents will also be cached here
Viewer.SetLicensePath(Server.MapPath("SomePathToYourLisenceFile"));

第三步:在web.config文件中添加一些处理程序。

<add name="ViewDocumentHandler" verb="GET,POST" path="document-viewer/ViewDocumentHandler" type="Groupdocs.Web.UI.Handlers.ViewDocumentHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetDocumentPageImageHandler" verb="GET,POST" path="document-viewer/GetDocumentPageImageHandler" type="Groupdocs.Web.UI.Handlers.GetDocumentPageImageHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="LoadFileBrowserTreeDataHandler" verb="GET,POST" path="document-viewer/LoadFileBrowserTreeDataHandler" type="Groupdocs.Web.UI.Handlers.LoadFileBrowserTreeDataHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetImageUrlsHandler" verb="GET,POST" path="document-viewer/GetImageUrlsHandler" type="Groupdocs.Web.UI.Handlers.GetImageUrlsHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetCssHandler" verb="GET" path="document-viewer/CSS/GetCssHandler" type="Groupdocs.Web.UI.Handlers.CssHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="images" verb="GET" path="document-viewer/images/*" type="Groupdocs.Web.UI.Handlers.EmbeddedImageHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetScriptHandler" verb="GET,POST" path="document-viewer/GetScriptHandler" type="Groupdocs.Web.UI.Handlers.ScriptHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetFileHandler" verb="GET" path="document-viewer/GetFileHandler" type="Groupdocs.Web.UI.Handlers.GetFileHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetPdf2JavaScriptHandler" verb="GET,POST" path="document-viewer/GetPdf2JavaScriptHandler" type="Groupdocs.Web.UI.Handlers.GetPdf2JavaScriptHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetPdfWithPrintDialogHandler" verb="POST" path="document-viewer/GetPdfWithPrintDialogHandler" type="Groupdocs.Web.UI.Handlers.GetPdfWithPrintDialogHandler, Groupdocs.Viewer, Culture=neutral" />
<add name="GetPrintableHtmlHandler" verb="GET,POST" path="document-viewer/GetPrintableHtmlHandler" type="Groupdocs.Web.UI.Handlers.GetPrintableHtmlHandler, Groupdocs.Viewer, Culture=neutral" />

第四步:在视图中加入以下内容

//loads the javascripts that groupsdocs viewer needs@Html.CreateViewerScriptLoadBlock().LoadJquery().LoadJqueryUi()
@(Html.ViewerClientCode()
.TargetElementSelector("#documentContainer")
.Stream(SomeDotNetStream) // fetch document from a stream
//.Url("SomeUrl") fetch from a url
//.FilePath("SomeFile") fetch from filepath
.DocViewerId("SomeViewerId")
//different functionality can be turned on and off, this is just an example on how we have set them
.EnableRightClickMenu(true)
.ShowThumbnails(false)
.OpenThumbnails(false)
.ShowFolderBrowser(false)
.ShowDownload(false)
.ShowViewerStyleControl(false)
.ShowSearch(false)
.UsePdfPrinting(false)
.BackgroundColor("black")
.Width(960)
.Height(900)
.ZoomToFitWidth(true)
.Locale("nb-no")
)

干净简便的HTML5文档查看器——GroupDocs.Viewer相关推荐

  1. 在线文档查看器GroupDocs.Viewer 9月新版V17.9发布 | 附下载

    2019独角兽企业重金招聘Python工程师标准>>> GroupDocs.Viewer for .NET 17.9 更新 更新要点 设置为在HTML中呈现时排除字体 设置以在呈现P ...

  2. 文档查看器GroupDocs.Viewer V17.11发布 | 附下载

    2019独角兽企业重金招聘Python工程师标准>>> GroupDocs.Viewer for .NET 17.11 更新 功能和改进 核心 概述 类别 VIEWERNET-142 ...

  3. 文档查看器PrizmDoc Viewer v13.13发布:多个修订及更新

    PrizmDoc是最快速.最有品质的HTML5文档查看器,提供安全的.全定制化的查看和协作功能.它通过一个简单部署的机制减少成本,降低安全风险和提高生产率.同时,它是基于服务器的查看器,消除了不必要的 ...

  4. HTML5文档查看器PrizmDoc发布v13.0,新增文档比较功能

    2019独角兽企业重金招聘Python工程师标准>>> PrizmDoc新版本增加了多个功能,可提高文档管理流程的效率,促进更高的生产力. PrizmDoc v13.0中最重要的新功 ...

  5. 在线文档查看器:Gleamtech Document Viewer 6.6.1

    DocumentUltimate Document Viewer and Converter for ASP.NET Core, MVC 和 WebForms 查看几乎任何文档类型(70 多种文件格式 ...

  6. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器

    原标题:你应该还不知道,Linux终端下的 Markdown 文档查看器 现在,Markdown 差不多已经成为技术文档的标准.它可以实现技术文档的快捷写作,以及输出发布.同样都是标记语言,但Mark ...

  7. PyQt5 制作帮助文档查看器

    帮助文档查看器是很多程序中必备要素,而利用Qt中的QTreeView组件可以很方便的查看文件,而QTextBrowser可以直接显示格式化的MarkDown文本.因此可以利用这两个组件制作一个帮助文件 ...

  8. 2D/3D文档查看器ABViewer发布v12,大大提高PDF转DWG的速度丨附下载

    2019独角兽企业重金招聘Python工程师标准>>> ABViewer是一款高质量的2D/3D文档查看器,可提供专业的浏览.编辑和转换功能,支持30多种光栅和矢量图形格式,其中包括 ...

  9. 2D/3D文档查看器ABViewer v12大大提高了PDF转DWG的速度

    ABViewer是一款高质量的2D/3D文档查看器,可提供专业的浏览.编辑和转换功能,支持30多种光栅和矢量图形格式,其中包括AutoCAD DWG, DXF, DWF, Hewlett-Packar ...

最新文章

  1. 使用modernizr.js检测浏览器对html5以及css3的支持情况
  2. android获取时区时间格式,考虑时区的日期/时间转换-Android
  3. sdwan安全如何加固?六种安全SD-WAN方案分享
  4. MySQL - MySQL不同存储引擎下索引的实现
  5. 【TensorFlow2.0】数据读取与使用方式
  6. kernel panic 和 kernel Oops
  7. Linux 命令之 netstat -- 查看网络状态信息/显示网络状态
  8. 一个android工程生成两个aar,android studio生成aar包并在其他工程引用aar包(示例代码)...
  9. JAVA调用动态链接库
  10. c语言开发破解pdf软件,ARM处理器与C语言开发应用(第2版) PDF
  11. LoadRunner 11 error:Cannot initialize driver dll
  12. 【转】Symstore 详细使用
  13. 人脸对齐(七)--JDA算法
  14. 【perl脚本】单行循环正则匹配
  15. 2021-02-24 PMP 群内练习题 - 光环
  16. Android Studio生成APP方法及其所在位置
  17. [敛火成丹]Win11Dev-25236.1010专业工作站版-微调
  18. 「释放自我」后,敢说真话的人干趴了会写PPT的人!
  19. directives 引用this
  20. [转]《数学之美》 阅读笔记

热门文章

  1. 制造业管理系统如何帮助企业做好物料编码管理?
  2. Linux常用命令——newusers命令
  3. android 设备驱动
  4. bim综合软件:一次性快速解锁所有轴网,生成轴网
  5. C++判断两字符串是否相等
  6. mac 10.10.5 mysql_Mac 10.10.5 环境下搭建apache,php,mysql,phpadmin
  7. Hybrid App开发之css样式使用
  8. 如何把删除的文件复原?恢复数据其实也不难
  9. 如何学习python?
  10. C++基础巩固__declspec(naked)