夜雨聆风学习资料网

ARTICLE · 1140732

《前端文档预览不用愁:JitViewer,一个 SDK 吃下 Word / PDF / Excel / PPT 在线预览》

《前端文档预览不用愁:JitViewer,一个 SDK 吃下 Word / PDF / Excel / PPT 在线预览》

开源推荐 · 前端工具链

前端文档预览不用愁
一个 SDK 吃下 Word / PDF / Excel / PPT

JitViewer | Vue3 · React · 原生 HTML | Apache-2.0 开源免费 | Star 349

做前端的都懂:"给我加个文档在线预览"是那种一句话需求、一星期工期的活。传统方案各有各的痛:后端转 PDF 要服务器、 kkFileView 要独立部署、微软/谷歌在线预览有数据出境顾虑、自己啃 pdf.js 和 SheetJS 又是一屁股兼容性。最近在 GitHub 上看到一个项目把这些活全包了——JitViewer(jitOffice/jit-viewer-sdk):一个纯前端的跨框架文档预览 SDK,PDF、Word、Excel、PPT、OFD、Markdown、CSV、CAD 图纸、视频、音频全都吃,Vue3 / React / 原生 HTML 三端无缝,Apache-2.0 开源免费。[1]这篇带大家过一遍。

一、先看仓库和官网

① GitHub 仓库(Star 349 · Fork 50 · Apache-2.0 · 最新 v1.5.0)——

② 官网与在线演示(jitword.com)——首屏就是格式标签墙,PDF / Word / Excel / CSV / PPT / Markdown / OFD / CAD / 图片 / 视频 / 音频 / 代码预览一排排列开;npm 徽章显示 v1.5.0 · 月下载 4.7k——

截图:github.com/jitOffice/jit-viewer-sdk · jitword.com/jit-viewer.html(2026-09)

二、它能做什么:六件事一次说清

① 格式全:PDF、DOCX、XLSX/XLS、PPTX/PPT、OFD、TXT、Markdown、CSV,官方页面还列出 CAD 图纸(DXF)、图片、视频、音频、代码预览——OFD 是国产版式标准,多数国外方案不支持,这对政企项目是刚需;[1]

② 跨框架:Vue3、React、原生 HTML(IIFE)三套接入方式,API 完全一致——换框架不用换预览方案;[1]

③ 工具栏开箱即用:缩放、旋转、分页、跳页、打印、下载、全屏,全部内置,一行配置开关;[1]

④ 主题与国际化:浅色 / 深色主题可自定义配色,中英文内置、可扩展;[1]

⑤ 零依赖 + 按需加载:依赖全打包,业务侧不用再装一堆 pdf.js 之类的轮子;[1]

⑥ 纯前端预览:文件源支持 URL、File 对象、Blob、ArrayBuffer——数据不出内网,这对有保密要求的项目(政务、金融、军工文档)是硬优势。[1]

三、接入有多简单:三个框架,同一个 API

先装包:npm install jit-viewer(yarn / pnpm 同理)。三个框架的接入代码如下——注意三段代码里核心都是同一个 createViewer(),参数完全一致:[1]

Vue3

import { createViewer } from 'jit-viewer' import 'jit-viewer/style.css'  const viewer = createViewer({   target: containerRef.value,   // 挂载元素   file: 'https://example.com/document.pdf',   filename: 'document.pdf',   theme: 'light',               // 浅色 / 深色   toolbar: true,                // 内置工具栏   width: '100%', height: 600,   onReady: () => console.log('Viewer ready'),   onLoad: () => console.log('File loaded'),   onError: (e) => console.error('Error:', e) }) await viewer.mount() // 卸载时 viewer.destroy()

React

import { createViewer } from 'jit-viewer' import 'jit-viewer/style.css'  const viewer = createViewer({   target: containerRef.current,   file: 'https://example.com/document.pdf',   theme: 'light', toolbar: true, height: 600 }) void viewerRef.current.mount() // 还支持 setFile(file, filename) 动态换文件, // 配 input[type=file] 就是本地上传预览

原生 HTML(IIFE,两行接入)

<script src="https://unpkg.com/jit-viewer/dist/iife/jit-viewer.min.js"></script>  const { createViewer } = JitViewer const viewer = createViewer({ target: '#viewer', toolbar: true }) viewer.mount()

Vue3 / React 的完整 Demo 在仓库 vue-demo / react-demo / html-demo 目录里,克隆就能跑。

四、API 面:实例方法 20+ 个

createViewer 之外,ViewerInstance 暴露了一整套命令式方法——工具栏能做的事,代码里都能做:[1]

分类

方法

视图控制
zoom(scale) · rotate(degree) · reset() · fullscreen()
分页
prevPage() · nextPage() · gotoPage(p) · getPageInfo()
文件
setFile() · getFile() · print() · download()
配置
setTheme() · setLocale() · setToolbar()
生命周期
on/off 事件监听 · getState() · mount() · destroy()

回调有 onReady / onLoad / onError / onDestroy 四个钩子,加载失败能兜底。[1]

五、我的看法:适合谁,注意什么

适合:① 需要合同 / 报告 / 标书在线预览的企业内部系统(文件不出内网 + OFD 支持,政企场景对口);② 不想为预览单独部署后端服务的中小团队(纯前端零依赖,npm 一装完事);③ 想要暗色主题、自定义配色的产品化界面需求;[1]

注意四点:

① 项目 2026 年 3 月才初始化、7 个月 20 次提交、2 位贡献者——年轻项目,生产使用前建议先过一遍自己的文档样本(尤其是复杂样式 Excel 和超大 PDF);[1]

② Star 349、月下载 4.7k——社区规模还在早期,踩坑要靠自己提 Issue(目前 32 个开放);[1][2]

③ .doc / .xls 老格式部分支持(pptx/ppt、xlsx/xls 都在),但 .doc 老版 Word 不在支持列表,遇到老文档要先转格式;[1]

④ Apache-2.0 允许商用,但商用前建议与作者确认(仓库留了微信:cxzk_168),也留意后续版本是否调整协议。[1]

链接与来源

[1] GitHub:github.com/jitOffice/jit-viewer-sdk(Star 349 · Fork 50 · Apache-2.0 · v1.5.0 · 截图时间 2026-09-29)

[2] 官网与在线演示:jitword.com/jit-viewer.html(npm v1.5.0 · 月下载 4.7k)

- END -

相关学习资料