import * as pdfjsLib from 'pdfjs-dist'; import { convertToHtml } from 'mammoth'; export default { methods: { convertFileToHtml(file) { const fileType = file.type.split('/')[1]; const fileExtension = fileType === 'pdf' ? '.pdf' : '.docx'; // 将文件转换为Blob对象 const fileReader = new FileReader(); fileReader.onload = async (event) => { const arrayBuffer = event.target.result; const byteArray = new Uint8Array(arrayBuffer); const blob = new Blob([byteArray], { type: fileType + fileExtension }); if (fileType === 'pdf') { // 使用pdfjsLib将PDF转换为HTML const pdfData = await pdfjsLib.getDocument(blob).promise; const pageNumber = 1; const scale = 1; const viewport = pageNumber * scale; const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); canvas.width = pdfData.internal.pageSize.getWidth() * scale; canvas.height = pdfData.internal.pageSize.getHeight() * scale; const renderContext = { canvasContext: context, viewport: viewport, }; const renderTask = pdfData.getPage(pageNumber).render(renderContext); await renderTask.promise; const base64Image = canvas.toDataURL('image/png'); // 将base64Image转换为HTML const htmlContent = ``; return htmlContent; } else if (fileType === 'docx') { // 使用mammoth将Word转换为HTML const htmlContent = await convertToHtml(blob, { format: 'html' }); return htmlContent; } }; fileReader.readAsArrayBuffer(blob); }, }, };