vue项目实现预览pdf功能(解决动态文字无法显示的问题)

简介: 最近,因为公司项目需要预览pdf的功能,开始的时候找了市面上的一些pdf插件,都能用,但是,后面因为pdf变成了需要根据内容进行变化的,然后,就出现了需要动态生成的文字不显示了。换了好多好多的插件,都无法显示,直接无语了。 (pdf-vue3,pdf.js,vue3-pdfjs,vue-pdf-embed等插件无法显示动态文字)

最近,因为公司项目需要预览pdf的功能,开始的时候找了市面上的一些pdf插件,都能用,但是,后面因为pdf变成了需要根据内容进行变化的,然后,就出现了需要动态生成的文字不显示了。换了好多好多的插件,都无法显示,直接无语了。 (pdf-vue3,pdf.js,vue3-pdfjs,vue-pdf-embed等插件无法显示动态文字)

先看效果:

       image.gif编辑

这个插件支持自定义功能,唯一的缺点就是有点庞大,其他的就很完美了。

········我先简单来说一下设计思路吧,将查看pdf的这个页面写成一个组件,然后将组件绑定一个路由,当我们在列表页点击查看pdf功能时,将pdf的地址通过路由传入到我们的查看pdf的组件当中,然后在组件中使用插件,从而渲染我们的pdf文件

按照下面的步骤开始进行操作

1,创建一个新的预览pdf的组件

<template><divclass="table-container"><!--<PDF :src="url"  :disableFontFace="true"/>--><!--<vue-pdf-embed :source="{cMapUrl: 'https://unpkg.com/pdfjs-dist/cmaps/',
url: url,
  }"/> --><!--<PdfViewerv-if="url" :url="url" :type="'canvas'" :pdfjsDistPath="'/src/components/pdfjsDistPath'"></PdfViewer><pdfv-if="url" :url="url" :type="'canvas'" :pdfjsDistPath="'/src/components'"/>--><iframe :src="'static/pdf/web/viewer.html?file=' + url + '#page=1'"style="width: 100%; height: 100%"></iframe>  <!--!!!!注意这里,这里需要注意的地方有2个,第一个是我们的url,这个就是我们要预览的pdf的地址,第二个是#page=1 ,这个是打开时默认先展示第一页 --></div></template><scriptlang="ts">import { defineComponent, onMounted, reactive, ref, toRefs } from'vue'import { useRoute } from'vue-router'// import pdf from '../../components/pdf/pdf'// import PDF from "pdf-vue3";// PlusexportdefaultdefineComponent({
name: 'showpdf',
directives: {
    },
components: {},
setup() {
constroute=useRoute()
leturl=ref()
onMounted(() => {
url.value=route.query.url// getNumPages(route.query.url)        })
// 思考 ref 响应式和 reactive 响应式的区别; 修改对象属性值,是否会刷新数据return {
url        }
    }
})
</script><stylelang="stylus"scoped>    .table-container{
height: 100%;
overflow: scroll;
    }
</style>

image.gif

基本上稍微懂一点vue应该就能到上方代码的写法,这里就不多赘述了,有些要注意的地方会加上注释

1,当创建好vue文件后,将该vue文件绑定在路由上

image.gif编辑

3,我们在列表页获取到的pdf地址,通过路由传递到我们的pdf查看组件里。

constexamine= (item: any) => {
router.push({
path: '/report/showpdf',
query: { url: item.fileUrl }
            })

image.gif

4.在pdf路由组件里接收,并调用pdf查看器插件

image.gif编辑

5.结尾

后续我们把文件上传到csdn里,供大家免费下载,如果出现下载需要条件的情况下,可以直接私聊我,获取pdf预览查看,当要使用插件时,一定要阅读放插件文件夹里的提示文档!!

相关文章
|
2月前
|
数据安全/隐私保护 Windows
深度剖析:PDF 工具箱功能,编辑器操作及页面 / 图像提取技巧
PDF24 Tools是一款德国开发的免费PDF工具箱,18年始终免费,支持网页与Windows客户端。内置近50个工具,涵盖编辑、转换、合并、提取、加密等功能,操作简单,可离线使用,是高效处理PDF的理想选择。
541 0
|
2月前
|
存储 数据处理 数据库
公募REITs公告PDF文档处理项目
本项目是一个专门用于处理基础设施公募REITs(Real Estate Investment Trusts)公告PDF文件的完整RAG数据处理管道,也适用于其他公告PDF文件,应用多模态大模型,可高效提升文本提取内容。系统能够自动化地将PDF公告文档转换为结构化数据,能够检测表格、实现跨页表格拼接,并将表格内容还原为便于检索的文本信息。并构建向量数据库和 Elasticsearch 以支持智能检索与问答系统。
公募REITs公告PDF文档处理项目
|
1月前
|
机器学习/深度学习 文字识别 Shell
高效率办公PDF批量处理:批量OCR识别PDF区域文字内容,用PDF内容批量改名或导出表格的货物运单应用案例
针对铁路货运物流单存档需求,本项目基于WPF与飞桨OCR技术,实现批量图片多区域文字识别与自动重命名。用户可自定义识别区域,系统提取关键信息(如车号、批次号)并生成规范文件名,提升档案管理效率与检索准确性,支持PDF及图像文件处理。
255 0
|
4月前
|
缓存 测试技术 网络安全
05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡
05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡
92 0
05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡
|
3月前
|
人工智能 JavaScript 前端开发
基于iTextSharp实现PDF加密功能
本教程介绍使用C#与iTextSharp库实现PDF文档加密的方法。内容包括环境搭建、界面设计及后台逻辑编写,涵盖选择文件、设置用户与所有者密码、加密操作等步骤,帮助开发者快速掌握PDF安全处理技巧。
116 0
|
5月前
|
人工智能 开发工具 开发者
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
HarmonyOS 系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。
272 0
|
前端开发
PDF文件上传转成base64编码并支持预览
PDF文件上传转成base64编码并支持预览
679 12
|
7月前
|
程序员 开发者
开源项目:一行代码,批量 PDF 转 Word 轻松搞定!
程序员晚枫分享了 `popdf` 的新功能:支持批量 PDF 转 Word!只需简单代码,即可轻松实现单文件或批量转换。`input_path` 和 `output_path` 参数让操作更便捷,适合处理大量 PDF 文件。作为开发者,晚枫致力于解决技术小痛点,欢迎体验并反馈。项目地址:[https://github.com/CoderWanFeng/popdf](https://github.com/CoderWanFeng/popdf)
637 6
|
9月前
|
文字识别
【PDF提取全自动改名】如何批量提取PDF指定区域的文字内容,用内容批量给PDF命名或者导出表格,学会全自动解放双手
在生活和工作中,我们常需处理大量PDF文件,如银行单据、税收单据等。手动处理效率低下,而使用“咕嘎批量PDF多区域内容提取重命名导表格系统”可快速完成数千份文档的处理,大幅提高效率。该工具通过获取PDF各区域内容坐标,导入并处理文件,最终将信息提取至表格,并根据关键信息对PDF进行重命名,方便管理和查找。
1426 2
|
8月前
|
文字识别 UED Python
对双栏 | 单双栏混合 | 图表文字混合的复杂布局的图片OCR识别(对布局复杂的整个pdf进行OCR识别)
这个故事告诉我们要多尝试不同的库和引擎,尤其是需求比较偏门或者少见的时候。同一个方向不同的库所擅长的领域是不一样的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~