UNPKG

@kinetics254/summit-odyssey

Version:

Events, Questionnaire, Feedback

51 lines (44 loc) 1.4 kB
import fileType from "file-type"; export default { methods: { pageCount: function (value) { if (!value) return 0; const bin = atob(value); return bin.match(/\/Type\s*\/Page\b/g).length; }, downloadFile: async function (attachment, filename = "") { const myBuffer = Buffer.from(attachment, "base64"); let res = await fileType.fromBuffer(myBuffer); const path = `data:${res.mime})};base64,${attachment}`; let ext = res.mime.split("/"); ext = ext.pop(); switch (ext) { case "pdf": ext = "pdf"; break; case "vnd.openxmlformats-officedocument.wordprocessingml.document": ext = "docx"; break; case "vnd.openxmlformats-officedocument.spreadsheetml.sheet": ext = "xlsx"; break; case "jpeg": case "jpg": ext = "jpeg"; break; case "png": ext = "png"; break; default: ext = "pdf"; } let filePath = `${filename || "attachment"}.${ext}`; const element = document.createElement("a"); element.setAttribute("href", path); element.setAttribute("download", `${filePath}`); document.body.appendChild(element); element.click(); document.body.removeChild(element); }, }, };