vue-pdf+element实现全屏窗口pdf分页预览,pdf打印实现和解决打印乱码

news2024/9/27 16:32:05

一.源码

vue-pdf打印实现和乱码解决icon-default.png?t=M85Bhttps://download.csdn.net/download/lucky_fang/85498529

二.全屏窗口打印预览效果

分页预览pdf

 窗口采用element窗口模板实现,样式可根据自己喜欢的效果进行修改

Element官方文档

终于可以打印测试了,乱码~(此处省略一千个崩溃~~):

 

三.实现步骤和打印乱码解决

1.安装vue-pdf,安装命令:

npm install --save vue-pdf

2.把前端源码目录node_modules下的子目录vue-pdf下的src下的pdfjsWrapper.js替换为源码下载的pdfjsWrapper.js 

node_modules\vue-pdf\src\pdfjsWrapper.js

 

 源码下载的:

前端若重新install,则要对应重新替换!!!

前端若重新install,则要对应重新替换!!!

前端若重新install,则要对应重新替换!!!

3.把cmaps目录拷贝到项目某路径下,如public下:

cmaps所在目录:node_modules\pdfjs-dist\cmaps

 引用cmaps:

 

4.pdf.vue引用cmaps,解决中文乱码问题,文件里面有关android的方法可以删除掉,本项目pdf.vue是作为vue的组件使用的,推荐这种设计方法

<template>
  <div>
    <pdf-preview v-if="srcPrint != ''" ref="pdfSearch" :src="srcPrint" @printAlert="printAlert"></pdf-preview>
  </div>
</template>

<script>
  import PdfPreview from './pdf';
  export default {
    components: {
      PdfPreview,
    },
    data() {
      return {
        srcPrint: 'http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf'
      }
    },
    mounted() {
      //打开pdf预览窗口
      this.$refs.pdfSearch.handleOpen();
    },
    methods: {
      printAlert(){//pdf预览窗口点击关闭
        this.$message.success("打印窗口关闭~");
      }
    }
  }

</script>

<style>
</style>

5.在使用的页面上定义:

A.引入,根据项目具体情况修改路径(我这里是同级目录)

import PdfPreview from './pdf';

B.组件声明(我这里采用局部组件使用,需要全局组件可以在main.js全局声明组件后就不用每次使用都声明了):

components: {

      PdfPreview,

},

C.页面上使用组件:

<pdf-preview v-if="srcPrint != ''" ref="pdfSearch" :src="srcPrint" @printAlert="printAlert"></pdf-preview>
@printAlert="printAlert"组件声明自定义方法,可以在组件通过此方法调用父级页面方法:

组件调用此方法

this.$emit("printAlert");

四.以上步骤处理完后,再打印测试~

 乱码解决,至此大功告成~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【优化求解】粒子群算法求解干扰受限无人机辅助网络优化问题【含Matlab源码 230期】

⛄一、粒子群简介 1 粒子群优化算法 粒子群优化算法( PSO)是指通过模拟鸟群觅食的协作行为,实现群体最优化。PSO是一种并行计算的智能算法,其基本模型如下: 假设群体规模为M,在D维空间中,群体中的第i个个体表示为XD ( xm1,xm2…xm D)T,速度表示为VD ( vm1,vm2…vm D)T,位置( …

聊一聊我对Restful理解

概念 REST原则提倡按照HTTP的语义使用HTTP&#xff0c;如果一个系统符合REST原则&#xff0c;我们就说这个系统是Restful风格的。Restful是Web API设计中非常重要的一个概念&#xff0c;但是很多开发人员对于Restful的理解存在误区。 什么是Restful 在说什么是Restful 之前&…

MES必懂知识,市场需求下的生产管理系统

任何事物的产生和发展都与市场的需求是分不开的&#xff0c;只有当市场需求新生的事物的时候&#xff0c;他才会兴起&#xff0c;有的事物早已经产生&#xff0c;在当时的环境下并未兴起&#xff0c;却在后来才兴盛&#xff0c;这是市场的需求的影响。 MES便是在市场需求下诞生…

高通导航器软件开发包使用指南(9)

高通导航器软件开发包使用指南&#xff08;9&#xff09;8参数说明8.1最小条件参数8.2光学流量数据图8.3光学流量估算数据图8.4光学流量估算图8.5 pos_hold_mode内存8.6体积参数8.7障碍物输出参数8.8速度平滑曲线8参数说明 每辆车必须在适当的位置有运行时参数文件&#xff0c…

How to build several ftp servers on one mac OS

1 How to establish one ftp server locally? I have viewed one article which helps us how to do this on mac OS. You can refer to this link Mac下搭建FTP服务器 please read the tutorial seriously. What I do in the following will be based on it. 2 How to buil…

centos7操作系统开机提示error:file “/boot/grub/i386-pc/normal.mod“ not found

一.问题现象 公司重要业务虚拟机突然业务访问不了&#xff0c;重启操作系统之后发现操作系统启动不了&#xff0c;直接进入救援模式&#xff0c;提示error:file “/boot/grub/i386-pc/normal.mod“ not found&#xff0c;报错截图 二.处理思路 在救援模式下&#xff0c;只有很…

用HTML+CSS做一个简单好看的汽车网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

网页开发——淘宝首页导航

这篇博文主要是重新学习&#xff08;复习&#xff09;前端知识&#xff0c;通过写淘宝购物首页导航为案例。 html主要书写内容&#xff1a; 1.首先我写了一个大盒子&#xff0c;用于存放所用的全部标签 <div class"nav">主要内容 </div> 2.插入一张淘宝…

AE/PR模板:镜头光晕炫光动画叠加特效 Premium Overlays Light Leaks

Premium Overlays Light Leaks是一款镜头光晕炫光动画叠加特效的AE/PR模板&#xff0c;非常适用于人物传记、演示文稿、出游vlog、产品展示等场合使用&#xff0c;为您的作品增添更出彩的视觉效果&#xff0c;喜欢的朋友不要错过哦~ 适用软件&#xff1a; AE 2019 或更高, PR 2…

YUV图像格式转换方法实践

一 I420转NV12 1.I420格式 &#xff08;1&#xff09;I420是每四个Y共用一组UV&#xff0c;如果一帧I420图像宽带是width&#xff0c;高度是height&#xff0c;1个像素占1个字节&#xff0c;那么共有width✖height个Y&#xff0c;U和V都是width✖height / 4个&#xff0c;因此…

JS 数据结构:队列

队列 定义&#xff1a; 队列(Queue) 是一种只在表的一端进行插入&#xff0c;而在另一端进行删除的数据结构。 队头(front) 允许删除的一端&#xff0c;永远指向第一个元素前一个位置。队尾(rear) 允许插入的一端&#xff0c;永远是指向队列最后一个元素先进先出(First In Fi…

一个漏测Bug能让你想到多少?

一、背景 漏测Bug是指产品逻辑缺陷在测试过程中没有被发现&#xff08;尤其是测试环境可以重现的缺陷&#xff09;&#xff0c;上线版本发布后或者在用户使用体验后发现并反馈回来的缺陷。可能造成线上故障或者资损&#xff0c;在对产品测试过程中&#xff0c;自己也难免出现一…

大二Web课程设计期末考试——基于HTML+CSS+JavaScript+jQuery电商类化妆品购物商城

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

[C++] std::ranges中的特征和自定义std::ranges::view变换

文章目录1. std::ranges中的特征1.1. std::ranges::range例子细化1.2. std::ranges::sized_range1.3. std::ranges::borrowed_range1.4. std::ranges::view2. std::ranges::subrange 迭代器-哨位对2.1. 构造2.2. 结构化解绑2.3. 操作3. std::views中的std::ranges::view变换3.1…

如何安装 Elasticsearch

实战场景 如何安装 Elasticsearch 知识点 •CentOS •Java •Elasticsearch 安装 •Kibana 安装 菜鸟实战 Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的…

编译器设计(十一)——标量优化

文章目录一、简介二、消除无用和不可达代码2.1 消除无用代码2.2 消除无用控制流2.3 消除不可达代码三、代码移动3.1 缓式代码移动3.2 代码提升四、特化4.1 尾调用优化4.2 叶调用优化4.3 参数提升五、冗余消除5.1 值相同与名字相同5.2 基于支配者的值编号算法六、为其他变换制造…

ubuntu 创建桌面快捷启动

前言&#xff1a; ubuntu系统通常不会在桌面上生成启动图标&#xff0c;一般需要自己建一个下面提供常用的两个模板&#xff0c; 1.启动其他程序 2.启动文件快捷方式 一、创建其他程序的启动快捷图标 用pycharm2022为例子 touch pycharm2022.desktop gedit pycharm2022.d…

为什么 JVM 叫做基于栈的 RISC 虚拟机?

为什么 JVM 叫做基于栈的 RISC 虚拟机&#xff1f; 其实这个问题比较简单&#xff0c;今天这篇文章的主要目的是想让大家看一下分析这个问题的逻辑&#xff0c;并且如何更好地从一手资料里寻找这些问题的答案。 上图是《深入理解 Java 虚拟机》一书中的截图。其实&#xff0c;…

吊打面试官,HashMap 这一篇就够了

一、HashMap的简单使用 HashMap集合的创建&#xff1a; Map<String,String> map new HashMap<String,String>(); 使用put存储数据&#xff1a; map.put("张三","喜欢打游戏"); map.put("李四","喜欢睡觉"); map.put(…

电网运行信息检索系统的设计与实现

摘要 电网运行方式管理直接决定了电网企业的经济效益和安全效益,随着我国经济和社会的高速发展&#xff0c;我国电网的覆盖面积、网络节点和电压等级也高速增长。但是,我国当前电网运行方式管理工作水平还相对落后&#xff0c;制约了电网的安全经济效益。本文较为详细的分析了电…