Blazor和JavaScript可以互操作,因此可以使用PDFObject预览pdf文件。实现步骤如下:

  • 添加script.js文件,调用PDFObject函数预览后端返回的文件Stream
import "./libs/pdfobject.js";export async function showPdf(id, stream) {const arrayBuffer = await stream.arrayBuffer();const blob = new Blob([arrayBuffer], { type: 'application/pdf' });//必须要加typeconst url = URL.createObjectURL(blob);PDFObject.embed(url, '#' + id, { forceIframe: true });//只有iframe可以打开blob链接URL.revokeObjectURL(url);
}
  • 添加JsInterop.cs文件,
public class JsInterop : IAsyncDisposable {private readonly Lazy<Task<IJSObjectReference>> moduleTask;public JsInterop(IJSRuntime jsRuntime) {moduleTask = new(() => jsRuntime.InvokeAsync<IJSObjectReference>("import", "./_content/XXX/script.js").AsTask());//XXX为Razor类库名称}public async void ShowPdf(string id, Stream stream) {var module = await moduleTask.Value;using var streamRef = new DotNetStreamReference(stream);await module.InvokeVoidAsync("showPdf", id, streamRef);//showPdf与script中的方法名一致}
}
  • 添加PdfFile.razor文件
@inject JsInterop Js<div id="pdf" class="tc-pdf"></div>@code {protected override void OnInitialized() {base.OnInitialized();var stream = Service.GetPdfFile();Js.ShowPdf("pdf", stream);}
}

参考资料:

ASP.NET Core Blazor 文件下载 | Microsoft Docs

javascript - Embed a Blob using PDFObject - Stack Overflow

Blazor使用PDFObject预览pdf文件相关推荐

  1. springboot整合pdfobject 预览pdf文件 出现 Not allowed to load local resource : file:///c:/xxxx.pdf 报错的问题解决

    浏览器不允许直接访问本地文件 解决:设置springboot虚拟目录 @Configuration public class WebMvcConfig extends WebMvcConfigurer ...

  2. html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  3. html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  4. 如何在html中在线预览pdf文件?

    方法1:使用 jquery js 库 1.引入 jquery-3.1.1.min.js 和 jquery.media.js 两个js文件,下载保存到本地 下载连接:jquery-3.1.1.min.j ...

  5. html 在线预览pdf功能,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件!javascript 翻来覆去找到两种办法 ,最后采用了jquery.media.js插 ...

  6. js在线预览pdf文件

    js在线预览PDF文件 一.效果预览 二.实现代码: <html> <head> <meta http-equiv="Content-Type" co ...

  7. 前端在线预览PDF文件

    如何在vue项目中预览PDF格式的文件 需求:在vue3.x项目中预览pdf文件 提供以下三种方案: 1.Vue-pdf:适用于vue2.x版本,vue3.x需要改一些源码(vue2.x项目极力推荐, ...

  8. 关于Android 在线预览PDF文件

    本篇文章大部分为转载内容,不过最后有我自己使用后的小总结,原文地址:https://www.jianshu.com/p/9e3ff8385e6f Android PdfViewer: 项目地址: ht ...

  9. android 在线预览pdf文件

    android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 1.andorid原生自带的pdf管理库,主要提供 ...

  10. android 在线预览pdf文件(目前最全)

    android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 一.andorid原生自带的pdf管理库,主要提供 ...

最新文章

  1. 路由器连接帧中继网络的接口是(11),连接双绞线以太网的接口是(12)。 【答案】D B
  2. pytorch 卷积分组
  3. 去分库分表的亿级数据NewSQL实践之旅
  4. SAP Cloud Connector的介绍
  5. Zimbra系统资料
  6. 记录一次因为懒惰而吃亏的事情
  7. Form partner relationships early, even if informal
  8. python数字右对齐_python用format把float、int等数字字符串化设置左对齐右对齐居中对齐,宽度,保留几位...
  9. 【图像隐写】基于matlab DWT+DCT+LSB数字水印隐藏提取比较【含Matlab源码 1623期】
  10. 基于php的人事档案管理系统
  11. 游戏策划试题(1)——摘自牛客网
  12. 影视后期视频制作系统——非编系统
  13. Mybatis使用choose when
  14. 简单明了的普利姆算法
  15. 上海宝付揭穿网络招聘小把戏
  16. 自动化测试应用---HTML测试报告+邮件发送
  17. Citrix Receiver for Linux安装和cert证书添加解决SSL错误
  18. 线段与线段交点的求解
  19. PAT A1034 Head of a Gang (30 分)
  20. http常见状态返回码

热门文章

  1. minitab学习系列(1)--二项式分布过程能力分析
  2. GPS精确授时方法研究-基于ublox GPS
  3. 安卓一键清理内存_豆豆清理大师免费下载-豆豆清理大师老年版 v1.0.0手机版
  4. 干掉 Jenkins?顶级 DevOps 工具链大盘点
  5. 什么是大数据?65页PPT+50分钟视频讲解,小白也能看懂
  6. MCSA Windows Server 2016 Complete Study Guide, 2nd Edition 免积分下载
  7. Sublime PyV8
  8. Ab压力测试Http
  9. 这些藏在成都的 NB 互联网公司
  10. 嵌入式Linux开发的前世与今生——基本概述