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 = `<img src="${base64Image}" />`;
|
return htmlContent;
|
} else if (fileType === 'docx') {
|
// 使用mammoth将Word转换为HTML
|
const htmlContent = await convertToHtml(blob, { format: 'html' });
|
return htmlContent;
|
}
|
};
|
fileReader.readAsArrayBuffer(blob);
|
},
|
},
|
};
|