尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

前端文档阅读插件(PDF/OFD)

前端文档阅读插件(PDF/OFD)
📅 发布时间:2026/7/22 13:04:47

WebDocViewer — 多格式文档在线预览插件

纯前端、零后端依赖的多格式文档在线预览组件,支持 PDF、OFD、DXF 图纸、图片、音视频、ZIP 压缩包及各类文本文件的浏览器内即时预览,内置水印、权限控制、缩略图导航等企业级能力。


支持格式

格式说明
PDF基于 pdfjs-dist 矢量渲染,支持文本层选中、目录大纲、缩略图、数字签名验证
OFD自研解析引擎,支持字体嵌入、电子签章(ESL/SES)解析与 SM3 验章、水印层、目录
DXF纯前端 CAD 图纸预览,支持 LINE/ARC/CIRCLE/ELLIPSE/SPLINE/TEXT/INSERT 块引用等图元,滚轮缩放 + 拖拽平移
图片PNG/JPG/GIF/BMP/WebP/SVG,支持缩放、旋转
音频MP3/WAV/OGG/FLAC/AAC/M4A
视频MP4/WebM/OGG
ZIP树形目录浏览,内部文件自动调用对应渲染器预览(PDF/OFD/DXF/图片/文本等)
文本TXT/JSON/XML/HTML/CSS/JS/TS/Python/Java/SQL 等 40+ 扩展名,虚拟滚动 + 语法高亮,大文件异步分块加载不卡页面

核心功能

文档操作

  • 翻页(上/下页、跳转指定页、页码输入)
  • 缩放(工具栏按钮 + 鼠标滚轮,25%~300%)
  • 旋转(90° 步进)
  • 打印(隐藏 iframe 后台打印,自动等待图片加载)
  • 下载原始文件

水印系统

  • 文字水印 / 图片水印(图片优先)
  • 可配置:字体、字号、颜色、透明度、旋转角度、平铺间距
  • 支持追加实时时间(自定义格式yyyy-MM-dd HH:mm:ss)
  • 防删除机制(MutationObserver 自动恢复被移除的水印节点)
  • 运行时动态设置 / 更新 / 移除

权限控制

  • allowPrint:是否允许打印
  • allowDownload:是否允许下载
  • 工具栏按钮根据权限自动显隐

侧边栏导航

  • PDF/OFD 缩略图面板(异步按需渲染)
  • PDF 文档目录大纲(支持多级折叠)
  • 点击缩略图/目录项跳转对应页

OFD 电子签章

  • 自动检测 OFD 文件中的电子印章(ESL/SES 格式)
  • 签章图片叠加渲染到对应页面
  • 右键查看签章详情(签署者、证书信息、签署时间、SM3 摘要验证)

PDF 数字签名

  • 自动检测 PDF 签名(ByteRange + PKCS#7)
  • 浮动徽章提示已签名
  • 验证文档完整性(SHA-256/SHA-1/SM3 摘要对比)
  • 证书链验签(RSA/ECDSA,Web Crypto API)

大文件防卡死

  • 文本解析全链路异步:分块解码(每 1MB 让出 UI)→ 分块拆行 → 虚拟滚动渲染
  • 超长行(base64 等)自动截断显示 + 跳过高亮正则
  • 滚动 rAF 节流,每帧最多渲染一次
  • ZIP 内文本文件复用异步 TextRenderer

快速接入

安装

npminstallweb-ofd-view

或直接引入构建产物:

<linkrel="stylesheet"href="./libs/style.css"/><scripttype="module">import{createDocViewer}from'./libs/web-doc-viewer.js'</script>

基本用法

import{createDocViewer}from'web-ofd-view'import'web-ofd-view/style.css'constviewer=createDocViewer({el:'#viewer-container',// 挂载容器url:'/files/demo.pdf',// 文件地址width:900,initialScale:1.0,showToolbar:true,showSidebar:true,permissions:{allowPrint:true,allowDownload:true},watermark:{text:'仅供预览',opacity:0.08,angle:-30,showTime:true},onLoaded(meta){/* 文件加载完成 */},onError(err){/* 加载失败 */},onPageChange(current,total){/* 翻页回调 */}})

加载方式

// URL 加载awaitviewer.load('/files/report.ofd')// File 对象(input[type=file] 选择)awaitviewer.loadFile(file)// ArrayBuffer(fetch / WebSocket 等场景)awaitviewer.loadData(arrayBuffer,'pdf')

实例 API

方法说明
load(url, type?)通过 URL 加载文件
loadFile(file, type?)加载 File 对象
loadData(data, type)加载 ArrayBuffer
goToPage(page)跳转指定页
prevPage()/nextPage()上/下翻页
rotate(deg)旋转(如 90、-90)
zoomIn()/zoomOut()放大/缩小
resetZoom()重置缩放
setScale(scale)设置缩放比例
print()打印
download(filename?)下载文件
setWatermark(options | null)设置/移除水印
getCurrentPage()获取当前页码
getTotalPages()获取总页数
getFileType()获取当前文件类型
destroy()销毁实例,释放资源

构建

npmrun build

产物位于dist/目录:

文件说明
web-doc-viewer.jsESM 格式(推荐)
web-doc-viewer.umd.cjsUMD 格式(兼容 require)
style.css组件样式(必须引入)
*.d.tsTypeScript 类型声明

技术栈

  • 语言:TypeScript
  • 构建:Vite 5(库模式,ESM + UMD 双格式输出)
  • PDF 引擎:pdfjs-dist v3.11.174
  • ZIP 解析:JSZip
  • OFD/DXF:自研解析器(零依赖)
  • 密码学:Web Crypto API + 内置 SM3 实现

浏览器兼容

支持所有现代浏览器(Chrome 80+、Firefox 78+、Edge 80+、Safari 14+)。


License

MIT

gitee地址

https://gitee.com/yangJoshua/WebDocViewer

相关新闻

  • 【2024客户管理效能跃迁指南】:基于278家企业的AI流程改造数据,提炼出的6个黄金决策点
  • 方达炬 发明一例新字词 一例新种品:债务联合本金率;债务联合生产/复兴/战争制度;
  • 架构决策记录 (ADR) 全面指南:让知识生命周期超越技术生命周期

最新新闻

  • 欧米茄广州售后维修服务中心|广州欧米茄手表维修售后服务中心热线 + 售后电话 400-883-8097 (2026 年 7 月 最新公布) - 欧米茄中国售后中心
  • EMIFA接口驱动NAND Flash实战:硬件连接、EDMA传输与ECC校验详解
  • 西双版纳回收足金 999,鑫清黄金珠宝,零手续费,无隐形扣费 - 清奢黄金上门回收
  • 工业编织袋采购怎么避坑?别只看报价,先看抗拉强度、防护工艺和生产资质 - 中国华商产业观察网
  • Cocos2d-x 2.0.3 Win32项目创建与配置指南
  • 便利店销售充电器、数据线和充电宝,选择什么品牌比较靠谱? - 五大品牌极选

日新闻

  • AI云原生实战05-金融AI上云最难的不是技术,是“不出事“——TCE银行风控架构拆解
  • 2026年GEOSEO优化公司选型深度测评:五大硬核标准严选,这六家重塑搜索增长新格局 - 品牌前沿专家
  • **核验!2026年7月卡地亚香港**售后网点地址及服务电话公告 - 卡地亚服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号