【发布时间】:2021-08-20 15:14:06
【问题描述】:
我正在开发一个需要文档预览功能的 .net 项目。
我已经实现了一个 Webview2 控件,并且由于需要查看的大多数文档都是 pdf,因此这是一种享受。
但是,有时有些文档可能是 docx 或 xlsx 格式。 当我在这些文件上设置 webview2.Source = New Uri(PathtoFile) 时,webview2 控件会将文档下载到我的下载文件夹而不是呈现它。
我知道这些文件不是 HTML,但又不是 PDF,它们开箱即用。
我是否缺少某种机制,可以让 Webview2 控件显示 docx 和 xlxs 的文件内容而不是下载?
【问题讨论】:
-
PDF 可以正常工作,因为 Microsoft 专门在 Edge 中内置了 PDF 阅读器。 Office 文件没有内置这样的阅读器。 Office 应用程序的 ActiveX 控件可以在 IE 中打开文档,但我认为 Edge 不支持这些控件。如果您无法在 Edge 中打开这些文档,则无法在
WebView2中打开它们。也许您可以专门为 Office 文档使用WebBrowser控件,因此将支持 Office ActiveX 控件。一种替代方法可能是在线使用 Office,尽管我不确定它是否支持本地文件。 -
@jmcilhinney 除了 如果您无法在 Edge 中打开这些文档,那么您将无法在 WebView2 中打开它们,所有正确。不必要。 WebView2 使用渲染引擎,但其他实现可能专门适用于 Edge (Chromium)。您也可以通过 PDF 看到差异:不是一回事。 -- 下一步是:Microsoft Edge WebView2 and Microsoft 365 Apps
-
@Jimi,我没有详细阅读该页面,但乍一看,它似乎在谈论 Office 中的 WebView2,而不是 WebView2 中的 Office。它说 Office 365 应用程序使用 WebView2 控件来显示 Web 内容,而不是 WebView2 可用于显示 Office 365 文档。我知道 WebView2 不是 Edge,但它基本上是 Edge 的一个子集,就像 AxWebBrowser 控件是 IE 的一个子集,所以,开箱即用,它不能做 Edge 不能做的事情。也就是说,很可能有一些我没有考虑到的因素,所以我很高兴被证明是错误的。
-
@jmcilhinney 当然,两者都使用 Chromium。但实施很重要。并非一切都浮出水面。 WebView2 控件拥有自己的 Chromium API 实现(位于公共存储库中),Edge 应用程序拥有自己的。 -- 是的,Office (365+) 当然会使用 Chromium 进行集成:IE 已经被淘汰,而旧的 Edge 即将被淘汰。 解释器(作为 Google 的文档视图)需要在 WebBrowers 中呈现 Office 文档。
标签: vb.net xlsx docx preview webview2