kkFileView 文件在线预览教程:3 步跑起本地服务,DWG 图纸浏览器直接看
【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView
项目群里丢来一份 DWG 施工图,会议室电脑没装 CAD;客户发来的 Word 在微信里传几次就变了样。这类"打开看看"的需求,其实不用装一套软件。kkFileView 是基于 Spring Boot 的通用文件在线预览项目,部署成一个服务后,几十种格式都能在浏览器里直接打开。
三步跑起本地预览
前置条件:JDK 21+(5.0.0 版本强制要求)和 Maven。
git clone https://gitcode.com/GitHub_Trending/kk/kkFileView cd kkFileView mvn clean package -DskipTestsjava -jar server/target/kkFileView-5.0.0.jar✅ 启动后浏览器访问http://localhost:8012/,默认端口可用环境变量KK_SERVER_PORT覆盖。仓库自带 Windows 版 LibreOffice(server/LibreOfficePortable/),Linux 启动脚本会自动安装转换组件,只有 Mac 需要手动装 LibreOffice。不想编译的话也可以直接运行server/src/main/java/cn/keking/ServerMain.java的 main 方法。
能力全景:哪些格式丢进去能直接看
kkFileView 把"转换+前端渲染"都收敛在一个服务里,覆盖面大致如下:
- 办公文档:doc/docx、xls/xlsx、ppt/pptx、csv,以及 WPS 的 wps/dps/et、OFD
- CAD 图纸:dwg、dxf、dwf、iges、dwt、plt、cf2 等
- 3D 模型:stl、obj、gltf/glb、3dm、fbx、ifc、fcstd 等
- 文本文档:txt、java、py、sql 等源码高亮,md 和 xml 带渲染
- 压缩包:zip、rar、7z、tar 等,可进入包内继续预览
- 其他:图片(含 heic)、音视频、xmind、drawio、bpmn、dcm、eml/msg 邮件、epub
DWG 图纸怎么在线看:三种预览模式怎么选
CAD 图纸默认走SVG 矢量模式(cad.preview.type=svg),缩放不失真,适合反复放大看细节;改成pdf则整份图纸转成 PDF,方便打印和标注。Office 文档 5.0 起默认也是PDF 模式,想恢复以前的图片优先行为,显式设置office.preview.type=image并打开office.preview.switch.disabled=false。
| 场景 | 选哪种 | 为什么 |
|---|---|---|
| 大图纸、低带宽,要打开快 | image(图片模式) | 按页转图片分批加载,像素渲染有精度损失 |
| 需要打印、标注、保留矢量 | 矢量无损,支持搜索定位 | |
| 在线反复放大查看 | svg(CAD 默认) | 矢量格式,缩放不糊 |
转换引擎也分两档:默认的aspose-cad(cad.conversionmodule=1)支持格式最多但吃服务器性能;只处理 dwg/dxf/dwf 时可切到 cadviewer,需自行下载转换包并放字体。
接入自己的系统:一个 GET 接口搞定
核心接口就一个:/onlinePreview?url=,注意url参数是文件地址做 Base64 再 URL 编码的双重编码(源码WebUtils.decodeUrl里有明确报错提示):
String fileUrl = "http://files.example.com/dwg/plan.dwg"; String encoded = URLEncoder.encode( Base64.getEncoder().encodeToString(fileUrl.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8); String preview = "http://localhost:8012/onlinePreview?url=" + encoded;可选参数:key(开启kk.key后必填)、encryption(AES 加密)、page(起始页)、highlightall(全文高亮)。
踩坑提示
- ⚠️trust.host 不配就全部拒绝:防 SSRF 机制下,不配置信任域名时,外部文件 URL 的预览请求会被默认拒绝,正式使用必须配白名单,只留本机测试用
*不推荐。 - 上传上限默认 500MB(
spring.servlet.multipart.max-file-size),大图纸场景按需调大,同时留意cad.timeout(默认 90 秒)和cad.thread(默认 5 线程)。 - Linux 部署注意
file.dir目录读写权限,转换缓存默认每天凌晨 3 点清理一次。 - 老版本升级 5.0.0 后 Office 默认行为从图片变 PDF,依赖旧行为的要在配置里显式改回来。
从 clone 到第一个图纸在浏览器里打开,整个过程十分钟以内。kkFileView 的价值在于把"装软件才能看"变成了"加个地址就能看",内网部署后基本不需要外部依赖。
你日常被索要预览最多的格式是哪种?
【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考