关于点击生成pdf文件并下载到本地的功能

后端

引入模块

async =  require 'async'

fs = require 'fs'

写入文件

writeFile = (address, str, cbf) ->
  write = fs.writeFileSync(address,str)
  return cbf null, write

生成html文件

htmlFile = (address, option, cbf) ->
  html = fs.readFileSync(address,option)
  return cbf null, html

生成pdf文件

pdfFile = (html, address, cbf) ->
  # console.log "html",html
  options = { format: 'A3' }
  pdf.create html, options
    .toFile address, (err, res) ->
      if (err) 
        return console.log err
      return cbf null,"success"

删除html文件

deteleHtml = (address, cbf) ->
  fs.unlink address, (err,res) ->
    if (err) 
      return console.log err
    return cbf null, 'detele success'

调用

funcs = [
  # 写入文件
  (cbf) ->
    return writeFile htmlAdr, params.str, cbf
  # 生产html文件
  (result1,cbf) ->
    return htmlFile htmlAdr, 'utf-8', cbf
  # 生产pdf文件
  (result2,cbf) ->
    return pdfFile result2, pdfAdr, cbf
  # 删除html文件
  (result3,cbf) ->
    return deteleHtml htmlAdr, cbf
]
async.waterfall funcs, (error, result) ->
  if error
    return cbf error, null
  # 返回用户信息
  res.download pdfAdr, fileName

前端

a(href="javascript:;" v-on:click.stop.prevent="onDownEsignatureLh(esignature_lh);") 下载
a = document.createElement "a"
url = window.URL.createObjectURL res.body
a.href = url
a.download = esignature_lh.ciphertext + ".pdf"
a.click()
window.URL.revokeObjectURL res.body
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值