vue3 H5项目中实现PDF预览

 是需要npm i vue-pdf-embed 安装这个插件的,可兼容ios/Android,下面是本人的使用实例

<template>
    <div class="conten_box">
        <vue-pdf-embed v-if="pdfSource.url" :source="pdfSource" />
    </div>
</template>
<script setup>
import { onMounted, ref, reactive } from 'vue'
import { ylhtPdf } from "@/api/ht/index";
import VuePdfEmbed from "vue-pdf-embed";

const pdfSource = reactive({
    url: "",
    cMapUrl: "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.16.105/cmaps/",
    cMapPacked: true,
});

// 获取pdf需要的url
const getInvitation = () => {
    ylhtPdf().then(({ data: { code, data, message } }) => {
        pdfSource.url = data.contract;
    })
    .catch(() => {});
}

onMounted(() => {
    getInvitation()
})

</script>

Vue H5可以通过使用第三方库来实现PDF文件的预览。一个常用的库是pdf.js,它是一个由Mozilla开发的JavaScript库,用于在网页上渲染PDF文件。 以下是实现PDF文件预览的步骤: 1. 安装pdf.js库:可以通过npm或者直接引入CDN来安装pdf.js库。 2. 创建一个Vue组件:在Vue项目创建一个组件,用于显示PDF文件。 3. 引入pdf.js库:在组件引入pdf.js库。 4. 加载PDF文件:使用pdf.js提供的API,加载需要预览PDF文件。 5. 渲染PDF文件:使用pdf.js提供的API,将PDF文件渲染到页面上。 下面是一个简单的示例代码: ```vue <template> <div> <canvas ref="pdfCanvas"></canvas> </div> </template> <script> import pdfjsLib from 'pdfjs-dist' export default { mounted() { this.loadPDF() }, methods: { async loadPDF() { const pdfUrl = 'path/to/your/pdf/file.pdf' const loadingTask = pdfjsLib.getDocument(pdfUrl) const pdf = await loadingTask.promise const page = await pdf.getPage(1) const canvas = this.$refs.pdfCanvas const context = canvas.getContext('2d') const viewport = page.getViewport({ scale: 1 }) canvas.height = viewport.height canvas.width = viewport.width const renderContext = { canvasContext: context, viewport: viewport } await page.render(renderContext) } } } </script> ``` 在上面的示例,我们使用了pdf.js库来加载和渲染PDF文件。首先,我们通过`getDocument`方法加载PDF文件,然后获取第一页的内容,并将其渲染到一个canvas元素上。 请注意,上述示例仅演示了基本的PDF文件预览功能,你可以根据自己的需求进行扩展和定制。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔于心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值