当前位置: 首页 > news >正文

如何用fastapi集成pdf.js 的viewer.html ,并支持 mjs

在这里插入图片描述

fastapi 框架 集成pdf.js 的 viewer.html?file=***,支持跨域,支持.mjs .wasm .pdf 给出完整示例代码

要在 FastAPI 框架中集成 pdf.jsviewer.html,并支持跨域访问以及 .mjs.wasm.pdf 文件的正确加载,可以按照以下步骤进行。下面提供一个完整的示例,包括项目结构、必要的配置以及完整的代码。

项目结构

假设项目目录如下:

your_project/
├── main.py
├── static/
│   ├── pdfjs/
│   │   ├── build/
│   │   │   ├── pdf.js
│   │   │   ├── pdf.worker.js
│   │   │   ├── pdf.worker.mjs
│   │   │   └── ...
│   │   ├── web/
│   │   │   ├── viewer.html
│   │   │   ├── viewer.js
│   │   │   ├── viewer.mjs
│   │   │   ├── viewer.wasm
│   │   │   └── ...
│   └── files/
│       └── sample.pdf
  • main.py: FastAPI 应用的主文件。
  • static/pdfjs/: 存放 pdf.js 的相关静态文件。
  • static/files/: 存放需要展示的 PDF 文件。

注意:你需要先下载 pdf.js 并将其解压到 static/pdfjs/ 目录下。

安装必要的依赖

首先,确保你已经安装了 fastapiuvicorn。如果还没有安装,可以使用以下命令安装:

pip install fastapi uvicorn

如果你需要支持跨域请求,还需要安装 fastapi.middleware.cors.CORSMiddleware(实际上,fastapi 已经内置了 CORS 中间件支持,无需额外安装)。

main.py 完整示例代码

from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse, RedirectResponse
from fastapi.staticfiles import StaticFiles
import osapp = FastAPI()# 配置允许的跨域源,* 表示允许所有
origins = ["*",# 若要限制特定域名,可以在这里添加,例如:# "http://localhost",# "http://localhost:8000",
]app.add_middleware(CORSMiddleware,allow_origins=origins,  # 允许的来源allow_credentials=True,allow_methods=["*"
http://www.lryc.cn/news/471354.html

相关文章:

  • 文件相对路径与绝对路径
  • Linux 重启命令全解析:深入理解与应用指南
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第六十七章 Trusted Firmware-A 移植
  • `a = a + b` 与 `a += b` 的区别
  • mysqld.log文件过大,清理后不改变所属用户
  • v4.7+版本用户充值在交易统计中计算双倍的问题修复
  • [GXYCTF 2019]Ping Ping Ping 题解(多种解题方式)
  • MODSI EVI 数据的时间序列拟合一阶谐波模型
  • Java:String类(超详解!)
  • 【日志】力扣13.罗马数字转整数 || 解决泛型单例热加载失败问题
  • Mybatis高级
  • 【spark】spark structrued streaming读写kafka 使用kerberos认证
  • 【脚本】B站视频AB复读
  • leetcode - 257. 二叉树的所有路径
  • python 相关
  • 静态分析2:控制流分析(构建CFG)
  • Linux 应用领域
  • FPM383C指纹模块超详解 附驱动
  • 若依框架篇-若依集成 X-File-Storage 框架(实现图片上传阿里云 OSS 服务器)、EasyExcel 框架(实现 Excel 数据批量导入功能)
  • .rmallox勒索病毒肆虐:如何有效防范与应对
  • 人工智能能否影响未来生活:一场深刻的社会与技术变革
  • cmu 15-445学习笔记-3 存储引擎
  • [linux]和windows间传输命令scp 执行WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误解决
  • C++ | Leetcode C++题解之第518题零钱兑换II
  • 高并发-负载均衡
  • Docker 常用命令全解析:提升对雷池社区版的使用经验
  • 基于 Postman 和 Elasticsearch 测试乐观锁的操作流程
  • 如何从PPT中导出600dpi的高清图
  • day01-ElasticStack+Kibana
  • HTML 约束验证