如何从浏览器打开存储在硬盘上的PDF



我正在将一个旧的Silverlight应用程序转换为.NET Core 6上的Blazor服务器。该应用程序是一个客户服务应用程序。

一个功能是查看存储在硬盘驱动器上的文件。例如,有一个存储在共享驱动器上的客户合同PDF。此文件的路径存储在数据库中。因此,在Silverlight应用程序中,最终用户只需点击一个按钮,上面写着";查看合同";Silverlight将使用该文件的路径在Adobe Reader或与该文件类型相关联的任何应用程序中打开该文件。此功能运行良好。

现在我需要在Blazor中复制这个功能,当然它只是一个浏览器。如果PDF在SQL Server中以字节形式存储在数据库中,那么服务器很容易获取文档,然后将其作为文档发送给最终用户。但它存储在一个共享驱动器上。

在这种情况下,我如何提供PDF?

使用SyncFusion意味着您必须在页面内呈现组件。我使用了两个SyncFusion组件来渲染PDF,但性能并不理想。我建议您添加<a target="_blank" href="URI">来调用在querystring中传递N个参数的端点。然后,您返回文档。通过这种方式,流媒体在服务器和浏览器之间传输,并且应用程序是非阻塞的。

事实证明,这比我想象的使用PDF Viewer组件更容易。

<SfPdfViewerServer DocumentPath="@DocumentPath" Height="100%" Width="1060px" ></SfPdfViewerServer>
@code{
private string DocumentPath { get; set; } = @"S:PathToTest.pdf";
}

显然,服务器必须具有访问PDF位置的权限才能正常工作。但效果很好。此示例是Syncfusion PDF组件。

相关内容

  • 没有找到相关文章