Newer
Older
smart-metering-front / src / utils / exportUtils.ts
lyg on 6 May 2024 1 KB 委托书导出
/**
 * 导出文件工具
 * @param blob 文件
 * @param fileName 导出文件名
 */
export function exportFile(blob: Blob, fileName: string) {
  // console.log(blob)
  console.log(fileName)

  if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {
    (navigator as any).msSaveBlob(blob, fileName)
  }
  else {
    const downloadElement = document.createElement('a')
    const href = window.URL.createObjectURL(blob) // 创建下载的链接
    downloadElement.href = href
    downloadElement.download = fileName
    document.body.appendChild(downloadElement)
    downloadElement.click() // 点击下载
    document.body.removeChild(downloadElement) // 下载完成移除元素
    window.URL.revokeObjectURL(href) // 释放blob对象
  }
}
// 打印文件流
export function printContent(content: any) {
  var tagElements = document.getElementsByTagName('iframe')
  for (var m = 0; m < tagElements.length; m++) {
    if (tagElements[m].className === 'tmp-pdf') {
      tagElements[m].parentNode!.removeChild(tagElements[m])// 去除元素
    }
  }
  const iframe = document.createElement('iframe')
  iframe.className = 'tmp-pdf'
  iframe.style.display = 'none'
  iframe.src = URL.createObjectURL(content)
  document.body.appendChild(iframe)
  setTimeout(() => {
    iframe.contentWindow!.print()
    URL.revokeObjectURL(content)
  }, 100)
}
// 打印文件流
// export function printContent(res) {
//   const url = URL.createObjectURL(res) // 后端返回的文本流
//   var iframe = document.createElement('iframe')
//   iframe.setAttribute('id', 'printPDF')
//   iframe.setAttribute('name', 'printPDF') // 不可少
//   iframe.style.frameborder = 'no'
//   iframe.style.display = 'none'
//   iframe.style.pageBreakBefore = 'always' // 打印保留分页
//   iframe.src = url
//   document.body.appendChild(iframe)
//   setTimeout(() => {
//     document.getElementById('printPDF').contentWindow.print()
//   }, 1000)
//   window.URL.revokeObjectURL(iframe.src)
// }