
将文档查看器 SDK 与云存储和协作平台集成

为什么云原生文档查看对现代 .NET 应用至关重要
使用单一 .NET 核心实现跨平台一致性
企业正从仅桌面文档工具转向在 Windows 上运行的 Web 优先体验。Doconut 的服务器端渲染引擎运行在 .NET 6 及更高版本上,确保无论底层操作系统如何都能得到像素完美的输出。由于查看器使用流工作,您可以从任何云存储桶中获取文件,直接传递给 Doconut 查看器组件,并将渲染的页面或缩略图返回给客户端,而无需将文件写入磁盘。
降低延迟和带宽消耗
当文档存储在 Azure Blob Storage 中时,仅为查看首页而将整个文件下载到客户端会产生不必要的延迟。Doconut 支持按需生成缩略图,您可以先请求低分辨率预览,仅在用户滚动时才获取完整页面渲染。此模式对数百兆字节的大型 CAD 图纸(DWG、DXF)尤为有价值。
安全优先的处理
所有繁重的处理都在服务器端完成。通过使用 Doconut 的 服务器端处理 功能,您可以将机密 PDF、法律合同或医疗记录保留在私有 VNet 或公司防火墙后面。不会调用任何第三方 SaaS,查看器也永不将原始字节流向浏览器端引擎——仅传输您在后台生成的图像瓦片或 HTML 片段。
将 Doconut 连接到流行的云存储服务
通用集成方法
- 获取文档流 – 使用所选云提供商的 SDK(Azure Blob、Amazon S3、Google Cloud Storage)将文件下载到
Stream对象中。 - 将流传递给 Doconut – Doconut 查看器接受流以及可选的渲染选项。这消除了在 Web 服务器上使用临时文件的需求。
- 生成查看器令牌 – Doconut 返回一个唯一标识当前会话中打开文档的令牌。该令牌可以以 JSON 形式返回给前端,并用于后续的页面渲染或注释请求。
- 按需渲染页面 – 前端使用令牌和所需的页码调用 Doconut 接口;Doconut 返回图像或 HTML 片段的流。
由于工作流仅依赖流,切换 Azure 代码为 Amazon S3 或 Google Cloud Storage 只需更改创建流的云 SDK 调用;其余的 Doconut 流程保持不变。
处理多租户存储
在 SaaS DMS 中,每个租户可能拥有独立的存储桶或前缀。由于 Doconut 使用流,您可以在运行时解析正确的存储桶,打开文档,并将令牌限定在当前用户的声明范围内。Doconut 的内部缓存(IDistributedCache)可配置为使用 Redis 或 Azure Cache for Redis,确保对同一页面的重复请求命中内存而不是重新渲染。
在协作工作流中启用实时注释和 OCR
注释插件:将静态查看器转变为评审中心
Doconut 附带一个 Annotation Plugin,允许用户高亮文本、添加便签或绘制自由手绘形状。文档打开后,您可以从查看器获取注释管理器,添加或修改注释对象,并将注释状态持久化为 XML。将 XML 与文档记录一起存储可实现版本化的评审历史,在后续打开时加载 XML 可恢复完全相同的视觉状态。
基于 OCR 的扫描 PDF 搜索
扫描的合同、收据或医学图像通常以仅图像的 PDF 形式出现。Doconut 的 Search Plugin 在您在查看器配置中启用时会自动在服务器上运行 OCR。OCR 引擎位于服务器端堆栈内部,提取的文本永不离开受保护的环境。OCR 完成后,您可以调用搜索 API 获取匹配的页码和边界矩形,UI 可对其进行高亮。由于 OCR 在服务器上运行,您还可以将提取的文本索引到 Azure Cognitive Search、Elasticsearch 或任何其他搜索服务,以实现对整个仓库的即时全文搜索。
通过共享令牌实现协作
在 Teams 或 SharePoint 集成中,通常会生成一个短期令牌,编码文档 ID、用户权限和时间戳。Doconut 从 OpenDocument 调用返回的令牌字符串可以包装成 JWT 或存入缓存条目。当其他用户点击共享链接时,使用相同的令牌重新加载查看器,保留所有参与者的注释和 OCR 层。
使用 Doconut 实现安全的服务器端转换和受控打印
许多企业需要将上传的 Word、Excel 或 CAD 文件转换为 PDF 进行归档,或强制执行“仅在批准后打印”的策略。Doconut 的 Converter Plugin 能在无需 Microsoft Office 或第三方服务的情况下处理这些场景。您在服务器上调用转换 API,传入源文件路径(或流)和期望的输出格式。转换完全在后端执行,生成的 PDF 可存储在文档库中。
PDF 生成后,您可以在查看器 UI 中直接启用 Controlled Printing。Doconut 提供方法为特定文档令牌设置打印权限。当用户点击打印按钮时,Doconut 检查该标志,若允许则渲染可打印的图像流,否则返回友好的 “打印已禁用” 信息。此方式无需自定义 JavaScript 来阻止浏览器的打印对话框。
审计打印活动
由于打印请求经过 Doconut 中间件,您可以接入 ASP.NET Core 的日志管道,捕获谁在何时打印了什么。将审计记录存入 SQL 表或转发至 SIEM 系统以满足合规报告需求——这对法律科技或医疗解决方案尤为关键,因为每一次文档访问都必须可追溯。
跨平台环境下的扩展性和性能最佳实践
- 利用分布式缓存 – Doconut 的内部页面瓦片缓存可以使用 Redis、Azure Cache 或任何
IDistributedCache实现。将文档版本哈希包含在缓存键中,以避免转换后提供过期的图像。 - 使用后台任务进行批量转换 – 在导入大型档案时,可使用 Hangfire 或 Azure Functions 将转换任务入队。Doconut 查看器类支持
IHostedService工作器,因为它接受流并返回令牌,无需 HTTP 上下文。 - 根据设备调节图像分辨率 – 移动设备适合较低的
ImageResolution(150‑200 DPI),而桌面工作站可请求 300 DPI 以呈现 CAD 细节。根据 user‑agent 字符串或客户端设置调整分辨率。 - 启用注释懒加载 – 将注释 XML 存储在单独的表中,仅在用户打开注释面板时加载。这可减少初始负载并加快首页渲染。
- 监控内存占用 – 渲染高分辨率 CAD 页面可能消耗大量内存。生产环境下将 .NET GC 配置为服务器模式 (
<gcServer enabled="true"/>),并设置合理的超时时间,以防渲染任务失控。 - 为静态资源使用 CDN – 查看器的 JavaScript 和 CSS 包是静态的。通过 Azure CDN、CloudFront 或 Cloudflare 提供,可在初始页面加载时削减数毫秒,尤其对全球分布的团队更为重要。
遵循这些指南,您即可在跨洲支持数千名并发用户,同时将首页的延迟保持在 200 ms 以下——这是许多企业门户追求的基准。
快速入门 Doconut 免费试用
评估 Doconut 的最快方式是从官方网站下载免费试用版,将 NuGet 包添加到新的 ASP.NET Core 项目中,并遵循快速入门指南。几分钟内,您即可拥有一个功能完整的查看器,能够从 Azure Blob 拉取文档、启用注释、运行基于 OCR 的搜索,并执行安全的服务器端转换。欲获取逐步说明,请访问 Doconut 文档,立即开始构建您的云原生文档体验。
准备好改造您的文档工作流了吗? 立即注册 Doconut 免费试用,亲身体验在任何 .NET 应用中轻松提供安全、可搜索且协作的文档体验。