vue pdf二次封装解决无法显示中文问题方法详解

 更新时间:2023年01月16日 16:31:53   作者:简单卟容易  
这篇文章主要为大家介绍了vue pdf二次封装解决无法显示中文问题方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

vue-pdf 可以实现PDF文件在线预览并且支持分页。安装方式:npm install --save vue-pdf

完整代码

<template>
    <el-dialog :visible="visible" title="查看PDF" width="1100px" top="2vh" append-to-body @close="handleClose">
        <pdf-viewer 
            v-if="url" 
            style="height: 750px;overflow: auto;"
            :src="url"
            :page="pageData.currentPage"
            @num-pages="pageData.total = $event"
            @page-loaded="pageData.currentPage = $event"
            @loaded="loadPdfHandler()">
        </pdf-viewer>
        <div class="ui-pdf-page" v-if="pageData.total > 1">
            <span @click="changePdfPage(0)" :class="pageData.currentPage == 1 ? '' : 'ui-link'">上一页</span>
            <span>{{pageData.currentPage + '/' + pageData.total}}</span>
            <span @click="changePdfPage(1)" :class="pageData.currentPage == pageData.total ? '' : 'ui-link'">下一页</span>
        </div>
    </el-dialog>
</template>
<script>
    import pdfViewer from 'vue-pdf'
    import CMapReaderFactory from 'vue-pdf/src/CMapReaderFactory.js' //解决中文显示
    export default{
        components: {
            pdfViewer
        },
        name: 'ComPdfView',
        props: {
            src: {
                type: String,
                default: '',
            },
            visible: {
                type: Boolean,
                default: false
            },
        },
        data(){
            return {
                url: '',
                pageData: {
                    currentPage: 0,
                    total: 0,
                }
            }
        },
        watch:{
            visible(val) {
                if (val) {
                    this.url = pdfViewer.createLoadingTask({ url: this.src, CMapReaderFactory });
                }
            }
        },
        methods: {
            handleClose() {
                this.pageData.currentPage = 1;
                this.$emit('update:visible', false);
            },
            changePdfPage (val) {
                if (val === 0 && this.pageData.currentPage > 1) {
                    this.pageData.currentPage--
                }
                if (val === 1 && this.pageData.currentPage < this.pageData.total) {
                    this.pageData.currentPage++
                }
            },
            loadPdfHandler() {
                this.pageData.currentPage = 1;
            }
        }
    }
</script>
<style scoped lang="less">
    .ui-pdf-page span {
        font-size: 12px;
        padding: 0 20px;
        color: #626879;
    }
    .ui-pdf-page span.ui-link {
        color: #3c8cff;
        cursor: pointer;
    }
</style>

解决无法显示中文问题

关键代码

import pdfViewer from 'vue-pdf'
import CMapReaderFactory from 'vue-pdf/src/CMapReaderFactory.js'
this.url = pdfViewer.createLoadingTask({ url: this.src, CMapReaderFactory });

以上就是vue pdf二次封装解决无法显示中文问题方法详解的详细内容,更多关于vue pdf封装中文显示的资料请关注脚本之家其它相关文章!

相关文章

  • vue3中Fragment特性的一个bug需要注意事项

    vue3中Fragment特性的一个bug需要注意事项

    这篇文章主要介绍了vue3中Fragment特性的一个bug,需要留意的注意事项示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • vue3的setup语法如何自定义v-model为公用hooks

    vue3的setup语法如何自定义v-model为公用hooks

    这篇文章主要介绍了vue3的setup语法如何自定义v-model为公用hooks,文章分为两个部分介绍,简单介绍vue3的setup语法如何自定义v-model和如何提取v-model语法作为一个公用hooks
    2022-07-07
  • vue+js实现微信上传图片选择功能

    vue+js实现微信上传图片选择功能

    这篇文章主要为大家详细介绍了vue+js实现微信上传图片选择功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 通过npm引用的vue组件使用详解

    通过npm引用的vue组件使用详解

    本文章通过实现一个vue-dialog的弹出层组件,然后附加说明如果发布此包到npm,且能被其他项目使用。本文给大家介绍的非常详细,需要的的朋友参考下
    2017-03-03
  • vue 部署上线清除浏览器缓存的方式

    vue 部署上线清除浏览器缓存的方式

    这篇文章主要介绍了vue 部署上线清除浏览器缓存的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue2.0使用Sortable.js实现的拖拽功能示例

    vue2.0使用Sortable.js实现的拖拽功能示例

    本篇文章主要介绍了vue2.0使用Sortable.js实现的拖拽功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • vxe-list vue 如何实现下拉框的虚拟列表

    vxe-list vue 如何实现下拉框的虚拟列表

    这篇文章主要介绍了vxe-list vue 如何实现下拉框的虚拟列表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Vue CLI 3搭建vue+vuex最全分析(推荐)

    Vue CLI 3搭建vue+vuex最全分析(推荐)

    这篇文章主要介绍了Vue CLI 3搭建vue+vuex最全分析(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue.js中的高级面试题及答案

    Vue.js中的高级面试题及答案

    Vue-loader 是 Webpack 的加载模块,它使我们可以用 Vue 文件格式编写单文件组件。这篇文章主要介绍了Vue.js的高级面试题以及答案,需要的朋友可以参考下
    2020-01-01
  • 详解如何实现在Vue中导入Excel文件

    详解如何实现在Vue中导入Excel文件

    这篇文章主要介绍了如何在Vue中导入Excel文件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-01-01

最新评论