PDFbase64数据下载 打印
下载
function imgURLtoBlob(dataurl) {
const arr = dataurl.split(',')
const mime = arr[0].match(/:(.*?);/)[1]
const bstr = atob(arr[1])
let n = bstr.length
const u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], { type: mime })
}
function pdfBase64ToBlob(dataUrl) {
var bstr = atob(dataUrl)
var n = bstr.length
var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], { type: 'pdf' })
}
function downloadFile(url, name) {
const a = document.createElement('a')
a.setAttribute('href', url)
const fileName = name
a.setAttribute('download', fileName)
a.setAttribute('target', '_blank')
const clickEvent = document.createEvent('MouseEvents')
clickEvent.initEvent('click', true, true)
a.dispatchEvent(clickEvent)
}
export function downloadFileByBase64(url, name) {
if (url) {
const myBlob = pdfBase64ToBlob(url)
const myUrl = URL.createObjectURL(myBlob)
downloadFile(myUrl, name)
} else {
alert('文件不存在')
}
}
base64数据打印PDF
export function pdfPrint(dataResult) {
let dataURLtoBlob = function(dataurl) {
var bstr = atob(dataurl)
var n = bstr.length
var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], { type: 'application/pdf' })
}
let doPrint = function(val) {
var ordonnance = document.getElementById(val).contentWindow
setTimeout(() => {
ordonnance.print()
}, 100)
}
let blob = dataURLtoBlob(dataResult)
var date = new Date().getTime()
var ifr = document.createElement('iframe')
ifr.style.frameborder = 'no'
ifr.style.display = 'none'
ifr.style.pageBreakBefore = 'always'
ifr.setAttribute('id', 'printPdf' + date)
ifr.setAttribute('name', 'printPdf' + date)
ifr.src = window.URL.createObjectURL(blob)
document.body.appendChild(ifr)
doPrint('printPdf' + date)
window.URL.revokeObjectURL(ifr.src)
}