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

nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件

 


特性:

1、支持任意深度的chm文件解析

2、解析后内容结构转换为tree数据呈现

3、点击树节点可以在html实时查看数据 

4、不依赖任何浏览器端插件,兼容性较好

nodejs端核心代码 

const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router, xlsx = global.SG.xlsx;
module.exports = global.SG.router;let webRootPath = 'http://127.0.0.1:9999/chm/';//测试环境chm文件根目录//上传单个文件(all方法支持POST、GET、PUT、PATCH、DELETE传参方式)
let uploadFileName = '';//获取上传后的文件名
router.all("/chm/upload",//接口路径$g.dir.upload("./upload",//存储临时上传文件的路径({ fileName, } = {}) => { uploadFileName = fileName; }).single("file"),//上传单个文件(req, res) => {// 开始解压上传的upload文件----------------------------------------let cp = require('child_process');cp.exec("reg query HKEY_CLASSES_ROOT\\360zip\\shell\\open\\command /ve", function (e, stdout, stderr) {let rootPath = `${__dirname.split('\\').slice(0, -3).join('\\')}`;let uploadFolderPath = `${rootPath}\\upload\\${uploadFileName}`;let targetFolderPath = `${rootPath}\\chm\\${uploadFileName}`;let str = stdout.match(/\"([^\"]+)\"/)[0];if (str) {// console.log('已经找到360zip程序,详细地址为:'+str);cp.exec(`${str} -x ${uploadFolderPath} ${targetFolderPath}`, { encoding: 'binary' }, function (e, stdout, stderr) {// 遍历读取目录里面的文件----------------------------------------let files = [];let walker = require('walk').walk(targetFolderPath, { followLinks: false });walker.on('file', function (roots, stat, next) {if (stat.name.includes(&#
http://www.lryc.cn/news/117268.html

相关文章:

  • .net core background service
  • 前端开发的工作职责精选【10篇】
  • SpringBoot 升级内嵌Tomcat
  • react搭建在线编辑html的站点——引入grapes实现在线拖拉拽编辑html
  • Nginx反向代理服务配置和负载均衡配置
  • react钩子函数理解
  • 医疗保健中的 NLP:实体链接
  • java编程规范
  • 合宙Air724UG LuatOS-Air script lib API--sim
  • 【网络基础实战之路】基于三个分公司的内网搭建并连接运营商的实战详解
  • (Python)Requests+Pytest+Allure接口自动化测试框架从0到1搭建
  • 实现vuex数据持久化处理
  • Vue-系统登录进入首页后禁用浏览器返回键
  • Hadoop理论及实践-HDFS的Namenode及Datanode(参考Hadoop官网)
  • 第四十九天
  • ArcGIS Pro简介下载安装地址
  • MySQL 存储过程、函数、触发器、事件
  • 【LeetCode】121. 买卖股票的最佳时机 -
  • 解决Vue+Element-UI 进行From表单校验时出现了英文提示问题
  • cpolar内网穿透的安装
  • OPENCV C++(十)gramm矫正+直方图均衡化
  • 并发——ThreadPoolExecutor 类简单介绍
  • SharePoint 审核和监控工具
  • java+springboot+mysql法律咨询网
  • 无涯教程-Perl - getservbyport函数
  • iOS开发-JsonModel的学习及使用
  • jquery 遍历所有元素
  • Tik Tok跨境电商新风向,跨境卖家该如何布局?
  • OR36 链表的回文结构 题解
  • “去没有天花板的地方” | 小红书用户情绪数据