支持 PDF、Word、Excel、PPT、Markdown、TXT 等多种格式
基于 Vue3 构建,轻量高效,一行代码即可集成到您的应用
为开发者提供完整的文档预览解决方案
只需引入2个文件,即可在您的应用中运行功能完整的文档预览器。无需复杂的配置,开箱即用。
支持 PDF、DOCX、XLSX、PPTX、TXT、Markdown 等多种常见文档格式,满足各种预览需求。
提供缩放、旋转、翻页、全屏、下载等完整的控制 API,支持自定义工具栏配置。
内置浅色和深色主题,支持动态切换,适配不同的应用场景和用户偏好。
支持响应式布局,完美适配移动端设备,提供流畅的触摸操作体验。
支持 URL、File 对象、Blob、ArrayBuffer 等多种文件源,灵活满足各种业务场景。
实时体验 JitViewer 的文档预览能力
正在预览 PDF 示例文档。您可以尝试缩放、旋转等操作,或上传自己的文件进行预览。
只需3步,即可在您的应用中集成 JitViewer
在 HTML 中引入 SDK 样式和脚本文件
<!-- 引入样式文件 -->
<link rel="stylesheet" href="jit-viewer.min.css">
<!-- 引入 JitViewer SDK -->
<script src="jit-viewer.min.js"></script>
在页面中添加一个容器元素
<div id="viewer" style="width: 100%; height: 600px;"></div>
使用 JitViewer 创建预览器实例并挂载
// 创建预览器实例
const viewer = JitViewer.createViewer({
file: 'document.pdf', // 文件 URL
filename: 'document.pdf', // 文件名(可选)
toolbar: true, // 显示工具栏
theme: 'light', // 主题
width: '100%',
height: '600px',
onReady: () => console.log('准备就绪'),
onLoad: () => console.log('加载完成'),
onError: (err) => console.error('错误:', err)
});
// 挂载到 DOM
viewer.mount('#viewer');
完整的 API 参考,助力深度定制
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
file |
FileSource | - | 文件源(URL/File/Blob/ArrayBuffer) |
filename |
string | - | 文件名 |
toolbar |
boolean/object | true | 工具栏配置 |
theme |
'light'|'dark' | 'light' | 主题 |
locale |
'zh-CN'|'en' | 'zh-CN' | 语言 |
width |
string|number | '100%' | 宽度 |
height |
string|number | '100%' | 高度 |
onReady |
function | - | 准备就绪回调 |
onLoad |
function | - | 加载完成回调 |
onError |
function | - | 错误回调 |
renderOptions.zoom |
number | 1 | 初始缩放比例 |
renderOptions.rotate |
number | 0 | 初始旋转角度 |
多种使用场景的完整示例代码
通过 URL 地址预览远程文档
const viewer = JitViewer.createViewer({
file: 'https://example.com/doc.pdf',
filename: '文档.pdf',
toolbar: true
});
viewer.mount('#viewer');
通过文件选择器预览本地文件
document.getElementById('fileInput')
.addEventListener('change', (e) => {
const file = e.target.files[0];
const viewer = JitViewer.createViewer({
file: file,
filename: file.name
});
viewer.mount('#viewer');
});
程序化控制文档缩放和旋转
// 放大
function zoomIn() {
const state = viewer.getState();
viewer.zoom(state.zoom + 0.1);
}
// 旋转
function rotate() {
const state = viewer.getState();
viewer.rotate((state.rotate + 90) % 360);
}
在浅色和深色主题间切换
// 切换到深色主题
function switchToDark() {
viewer.setTheme('dark');
}
// 切换到浅色主题
function switchToLight() {
viewer.setTheme('light');
}