PDF 转换为 图片保存

news/2024/11/22 17:06:35/

使用pdfjs-dist

package.json

...
"pdfjs-dist": "2.6.347"
...

PdfModal.vue

<template><div><a-modalv-if="visible"class="pdf-modal"title="导入 PDF 页面":visible="visible":centered="true":mask-closable="false":destroy-on-close="true":closable="false"><a-spin :spinning="loading"><!-- 上传pdf文件的组件,拿到pdf的url --><pdf-select v-model="pdf" type="doc" upload-text="选择文档" /></a-spin><template #footer><a-popconfirmv-if="loading"title="正在转换中,确定要取消吗?"ok-text="确定"cancel-text="取消"@confirm="$emit('cancel')"><a-button v-text="取消" /></a-popconfirm><a-button v-else v-text="取消" @click="$emit('cancel')" /><a-button key="submit" type="primary" :loading="loading" @click="onSubmit">确认</a-button></template></a-modal></div>
</template><script>
import * as PDFJS from 'pdfjs-dist/build/pdf';
import PDFJSWorker from 'pdfjs-dist/build/pdf.worker.entry.js';
import oss from '@@/utils/oss';PDFJS.GlobalWorkerOptions.workerSrc = PDFJSWorker;export default {name: 'PdfModal',model: {prop: 'value',event: 'change',},props: {value: {type: String,default: '',},visible: {type: Boolean,default: false,},},data() {return {pdf: '',images: [],loading: false,};},methods: {async convertToImage() {const CMapReaderFactory = { url: this.pdf.url };const loadingTask = PDFJS.getDocument(CMapReaderFactory);const pdfInfo = await loadingTask.promise;const files = [];for (let pageNum = 1; pageNum <= pdfInfo.numPages; pageNum++) {const canvas = document.createElement('canvas');// eslint-disable-next-line no-await-in-loopconst page = await pdfInfo.getPage(pageNum);const viewport = page.getViewport({ scale: 2 });const context = canvas.getContext('2d');canvas.width = viewport.width;canvas.height = viewport.height;const renderContext = {canvasContext: context,viewport,};const renderTask = page.render(renderContext);// eslint-disable-next-line no-await-in-loopawait renderTask.promise.then(async () => {await new Promise((resolve) => {canvas.toBlob(async (file) => {file.name = `${this.pdf.name}_page${pageNum}`;files.push(file);resolve();}, 'image/png', 1);});});}// 上传到云服务器const images = await oss.upload({ files, folder: 'content' });return images;},async onSubmit() {if (!this.pdf?.url || !this.pdf.url.endsWith('.pdf')) {this.$message.warning('请选择pdf文件');return;}this.loading = true;this.images = await this.convertToImage();this.loading = false;this.$emit('ok', this.images);},},
};
</script>

http://www.ppmy.cn/news/743935.html

相关文章

如何将PDF文件转换为PNG图片?

参考资料&#xff1a;https://www.reneelab.com.cn/how-to-convert-pdf-to-png.html 目录 一、PDF与PNG二、PDF转换软件介绍&#xff1a;快速将PDF文档转为PNG1、都叫兽™PDF转换2、Adobe Acrobat DC3、预览&#xff08;macOS&#xff09;4、DocuFreezer5、Pixillion Image Con…

图片怎么转换成pdf格式

图片作为我们日常工作和生活中最常接触到的一些内容&#xff0c;我们经常需要发送一些图片。图片较少还好&#xff0c;一旦图片较多&#xff0c;我们发送的时候会比较麻烦。工作或者学习过程中&#xff0c;我们可以将图片转成 PDF 文件&#xff0c;比如将证件图片或者资格证明图…

图片转成pdf格式怎么转?

图片转成pdf格式怎么转&#xff1f;pdf格式是日常办公或者学习中常用的格式之一。 当我们编写完office文件&#xff08;word或ppt&#xff09;时&#xff0c;我们会选择将其转换为PDF。可能有些小伙伴还不明白为什么要把图片转换成PDF格式&#xff0c;因为PDF格式具有较高的安全…

pdf怎么转换成图片格式

pdf怎么转换成图片格式&#xff1f;小编作为一名上班族&#xff0c;每天工作都需要使用到pdf文件&#xff0c;也会对pdf文件进行各种操作&#xff0c;而最多的操作莫过于格式转换&#xff0c;将pdf文件转换成格式文件形式。将pdf转换成图片就是其中一种&#xff0c;那么大家都是…

PDF如何转换成jpg图片

PDF文件转换成jpg&#xff0c;有些人一看到问题可能有点懵逼&#xff0c;其实就是PDF转换成图片了&#xff0c;只要转换器中的PDF转图片功能中图片格式支持jpg格式&#xff0c;就可以直接转换成jpg图片了&#xff0c;比如奥凯丰 PDF转换大师&#xff0c;支持PDF转jpg、PDF转png…

如何将pdf文件转换成图片?

如何将pdf文件转换成图片&#xff1f;pdf是常用的办公文件&#xff0c;深受大家的喜欢&#xff0c;有时候我们为了更方便的使用pdf文件&#xff0c;需要将pdf文件转换成图片后再使用&#xff0c;不过懂得转换操作的小伙伴并不是很多&#xff0c;所以很多小伙伴会采用截图的方法…

怎么把图片转换成pdf格式?图片转PDF方法

我们在日常的工作中会涉及到很多的图片文件&#xff0c;并且我们经常需要将这些文件转换成PDF格式。 因为一方面&#xff0c;图像是分散的&#xff0c;所以在需要使用它们不方便找到它们&#xff1b; 另外一方面&#xff0c;我们将图片转换成PDF格式发送给客户时&#xff0c;不…

PDF文件转换成图片的格式

PDF文件想要转换成图片文件&#xff0c;需要用到PDF转换器&#xff0c;将PDF文件格式转换成图片格式&#xff0c;比如jpg格式、png格式等。现在的PDF转换器有很多都可以将PDF文件转换成图片&#xff0c;比如奥凯丰 PDF转换大师。 选择【PDF转文件】&#xff0c;在操作类型中选择…