Vue3+Vue-PDF怎么实现PDF文件在线预览
创建 vue3 项目
我们先创建一个的 Vue3
项目, 在终端中输入命令
pnpm create vite vue-pdf-preview
选择 vue-ts
回车,cd 进入项目根目录,执行 pnpm install
, 等待项目依赖包安装完成。
项目依赖包安装完成后,我们来启动项目, 执行命令 pnpm run dev
,可以看到控制台输入出了如下内容
vite v2.9.9 dev server running at: > Local: http://localhost:3000/ > Network: use `--host` to expose ready in 780ms.
按住 control/command + 鼠标左键,项目在浏览器中打开了
项目启动成功
添加 PDF 预览插件
项目启动成功后,我们安装 PDF 预览插件
pnpm install vue-pdf-embed pnpm install vue3-pdfjs
我们在 src
下新建一个文件 src/components/pdfPreview.vue
,添加一些代码,初始化 vue-pdf
预览,代码如下
<template> <div class="pdf-preview"> </div> </template> <script setup lang="ts"> import { reactive, onMounted, computed } from "vue"; const props = defineProps({ pdfUrl: { type: String, required: true } }) onMounted(() => { }); </script> <style lang="css" scoped> .pdf-preview { position: relative; height: 100vh; padding: 20px 0; box-sizing: border-box; background: rgb(66, 66, 66); } .vue-pdf-embed { text-align: center; width: 515px; border: 1px solid #e5e5e5; margin: 0 auto; box-sizing: border-box; } </style>
添加完成后,我们将 PDF 预览组件引入到 App.vue
文件中,并将提前准备的 PDF 文件也引入,如下所示:
<template> <div> <PDFView :pdfUrl="jsPdf" /> </div> </template> <script setup lang="ts"> import PDFView from "./components/pdfPreview.vue" import jsPdf from "./Javascript.pdf" </script>
接下来我们回到刚刚新建的 PDF 预览组件页面,来完善预览功能
我们先引入 PDF 预览插件:
import VuePdfEmbed from "vue-pdf-embed"; import { createLoadingTask } from "vue3-pdfjs/esm"; // 获得总页数
使用 vue3 的 reactive
定义一些页数,页码,PDF文件预览地址变量
const state = reactive({ source: props.pdfUrl, 预览pdf文件地址 pageNum: 1, 当前页面 scale: 1, // 缩放比例 numPages: 0, // 总页数 });
在 OnMounted
钩子函数中使用createLoadingTask 获取下 预览文件的总页数
const loadingTask = createLoadingTask(state.source); loadingTask.promise.then((pdf:{numPages: number}) => { state.numPages = pdf.numPages; });
在template中加入预览插件代码:
<div class="pdf-wrap"> <vue-pdf-embed :source="state.source" : class="vue-pdf-embed" :page="state.pageNum" /> </div>
打开浏览器,可以看到 PDF 文件已经加载出来了,但是样式不是很好看,我们下一步将样式优化下,并将 PDF 文件的翻页功能,缩放功能,当前页面/总页数展示功能添加完善
添加如下代码到 tempate 中
<div class="page-tool"> <div class="page-tool-item" >上一页</div> <div class="page-tool-item">下一页</div> <div class="page-tool-item">{{state.pageNum}}/{{state.numPages}}</div> <div class="page-tool-item" >放大</div> <div class="page-tool-item">缩小</div> </div>
美化样式:
.pdf-preview { position: relative; height: 100vh; padding: 20px 0; box-sizing: border-box; background-color: e9e9e9; } .pdf-wrap{ overflow-y:auto ; } .vue-pdf-embed { text-align: center; width: 515px; border: 1px solid #e5e5e5; margin: 0 auto; box-sizing: border-box; } .page-tool { position: absolute; bottom: 35px; padding-left: 15px; padding-right: 15px; display: flex; align-items: center; background: rgb(66, 66, 66); color: white; border-radius: 19px; z-index: 100; cursor: pointer; margin-left: 50%; transform: translateX(-50%); } .page-tool-item { padding: 8px 15px; padding-left: 10px; cursor: pointer; }
添加文件的翻页功能,缩放功能,当前页面/总页数展示功能添加完善
const scale = computed(() => `transform:scale(${state.scale})`) function lastPage() { if (state.pageNum > 1) { state.pageNum -= 1; } } function nextPage() { if (state.pageNum < state.numPages) { state.pageNum += 1; } } function pageZoomOut() { if (state.scale < 2) { state.scale += 0.1; } } function pageZoomIn() { if (state.scale > 1) { state.scale -= 0.1; } }
tempalte
<div class="page-tool-item" @click="lastPage">上一页</div> <div class="page-tool-item" @click="nextPage">下一页</div> <div class="page-tool-item">{{state.pageNum}}/{{state.numPages}}</div> <div class="page-tool-item" @click="pageZoomOut">放大</div> <div class="page-tool-item" @click="pageZoomIn">缩小</div>
以上是Vue3+Vue-PDF怎么实现PDF文件在线预览的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在处理多个文档或同一文档的多个页面时,您可能希望将它们合并到一个文件中以与他人共享。为了方便共享,Apple允许您将多个PDF文件合并为一个文件,避免发送多个文件。在这篇文章中,我们将帮助您了解在iPhone上将两个或多个PDF合并为一个PDF文件的所有方法。如何在iPhone上合并PDF在iOS上,您可以通过两种方式将PDF文件合并为一个–使用“文件”应用程序和“快捷方式”应用程序。方法1:使用“文件”应用将两个或多个PDF合并为一个文件的最简单方法是使用“文件”应用程序。在iPhone上打开

Apple的实时文本功能可以识别照片中或通过相机应用程序的文本、手写笔记和数字,并允许您将该信息粘贴到任何其他应用程序上。但是,当您处理PDF并想要从中提取文本时该怎么办?在这篇文章中,我们将解释在iPhone上从PDF文件中提取文本的所有方法。如何在iPhone上从PDF文件中获取文本[3种方法]方法1:在PDF上拖动文本从PDF中提取文本的最简单方法就是复制它,就像在任何其他带有文本的应用程序上一样。1.打开要从中提取文本的PDF文件,然后长按PDF上的任意位置并开始拖动要复制的文本部分。2

我们通常接收到政府或其他机构发送的PDF文件,有些文件带有数字签名。验证签名后,我们会看到SignatureValid消息和一个绿色勾号。如果签名未验证,会显示有效性未知。验证签名很重要,下面看看如何在PDF中进行验证。如何在PDF中验证签名验证PDF格式的签名使其更可信,文档更容易被接受。您可以通过以下方式验证PDF文档中的签名。在AdobeReader中打开PDF右键单击签名,然后选择显示签名属性单击显示签名者证书按钮从“信任”选项卡将签名添加到“受信任的证书”列表中单击验证签名以完成验证让

PDF文件作为一种通用的文件格式,被广泛应用于各种应用场景,如电子书、报表、合同等等。在开发过程中,我们常常需要对PDF文件进行生成、编辑、读取等操作。而PHP作为一种脚本语言,也能够轻松地完成这些任务。本文将介绍使用PHP处理PDF文件的方法。一、生成PDF文件生成PDF文件有许多方法,其中最常见的是使用PDF库。PDF库是一种生成PDF文档的工具,它为

在iOS17和MacOSSonoma中,Apple添加了直接在Notes应用程序中打开和注释PDF的功能。继续阅读以了解它是如何完成的。在最新版本的iOS和macOS中,Apple更新了Notes应用程序以支持内联PDF,这意味着您可以将PDF插入Notes中,然后阅读、批注和协作处理文档。此功能也适用于扫描的文档,并且在iPhone和iPad上都可用。在iPhone和iPad上的“备忘录”中为PDF添加批注如果您使用的是iPhone并想在“备忘录”中为PDF添加注释,首先要做的是选择PDF文件

xmind是一款非常实用的思维导图软件,它是利用人们的思维和灵感制作出来的导图形式,我们在制作完xmind文件通常会把它转换成pdf文件格式,以方便大家传播使用,那么xmind文件怎么导出为pdf文件呢?下面就是具体操作步骤可以供大家参考。1.首先我们来演示一下如何导出思维导图为PDF文档。选择【文件】-【导出】功能按钮。2.在新出现的界面中选择【PDF文档】并点击【下一步】按钮。3.在导出界面选择设置:纸张尺寸、方向、分辨率和文档存储位置。完成设置后点击【完成】按钮。4.如果点击【完成】按钮后

cad转pdf一部分显示不出来解决方法:1、在CAD中重新调整图层设置,确保所有图层中的内容都被正确显示;2、使用一些专业的软件来转换CAD文件,保证输出文件的清晰度和精度,并且批量输出更省时提效;3、优化CAD文件,删除不必要的图层和元素,以减小文件的大小和复杂度;4、使用一个支持当前PDF版本的PDF查看器。
