NodeJs HtmlToDocx演示DEMO应用

该DEMO展示了一个利用多八多IDE和HTMLToDocx库将HTML代码转换为Word(.docx)文件的过程。用户通过前端按钮触发事件,发送HTML内容到后台服务,后台使用html-to-docx库进行转换,然后以二进制数据返回并使用file-saver库保存到本地。整个流程涉及axios用于HTTP请求,以及事件监听和响应。
摘要由CSDN通过智能技术生成

该demo演示如何利用多八多IDE开发,将HTML代码导出为Word文档(.docx)

HtmlToDocx演示DEMO应用https://pre.d8dcloud.com/play/585DEMO总览

点击下载docx文件,将html代码传入htmlToDocx后台服务,转换成Word(.docx)文件后下载到本地

HTML代码

<h1>Hello World</h1>

转换效果

应用总览

 前台按钮设置

 按钮点击事件函数代码

const emitter = new events.EventEmitter();

emitter.on('run', async () => {
  const axios = (await _F('module_func').callMethod('import', 'axios')).default;
  const FileSaver = (await _F('module_func').callMethod('import', 'file-saver')).default;// 使用 file-saver 库来保存文件
  
  // 定义要发送的 JSON 数据
  const postData = {
    key1: 'value1',
    key2: 'value2',
    // ...
  };

  // 设置请求头,告诉服务器接收的数据是 JSON 格式
  const headers = {
    'Content-Type': 'application/json'
  };

  console.log('axios',axios);

  // 发送 POST 请求并获取响应
  
  axios.post('/api/585/service_nsEi82NaJE', postData, {
    headers,
    responseType: 'blob' // 设置响应类型为二进制数据
  }).then((response) => {
    // 从响应中获取文件名
    const filename = response.headers['content-disposition'].split('filename=')[1];
    // 从响应中获取二进制数据
    const fileData = response.data;
    // 使用 file-saver 库保存文件
    FileSaver.saveAs(new Blob([fileData]), filename);
  }).catch((error) => {
    console.error(error);
  });
  
})

emitter.emit('run')

在按钮上点击鼠标右键,事件

  在点击事件处理JS函数上右键点击,开发标识,复制JS函数的开发标识

 按钮点击事件绑定,将JS函数开发标识粘贴到 按钮点击事件方法上

 htmlToDocx后台服务

const emitter = new events.EventEmitter();

emitter.on('run', async () => {
  const htmlToDocx = (await _F('module_func').callMethod('import', 'html-to-docx')).default;
  const html = '<h1>Hello World</h1>';
  // 调用 htmlToDocx 方法将 HTML 转换为 Docx 文档
  const docx = await htmlToDocx(html);
  console.log('htmlToDocx', typeof docx);

  _F('header_func').callMethod('set',{name:'Content-Disposition',value:'attachment; filename=example.docx'});
  _F('header_func').callMethod('set',{name:'Content-Type',value:'application/vnd.openxmlformats-officedocument.wordprocessingml.document'});

  _funcCb(docx);
})

emitter.emit('run')

完成

demo下载地址 https://www.d8dcloud.com/#/app

多八多IDE注册使用地址 

多八多应用组件库基于Web自带IDE+编译器,打开网页就能开发;个人和企业免费注册和开发,不限应用数量和使用人数;应用免费导出和私有部署;全场景全应用支持,可开发各类应用、小程序、APP等https://www.d8dcloud.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值