vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx

这篇具有很好参考价值的文章主要介绍了vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目开发使用vue-pdf,单页情况预览正常,多页vue-pdf预览异常,第一次预览时,会先弹出异常模态窗口,关闭模态窗口,pdf又是正常显示,报错信息及异常截图如下:

报错信息
Rendering cancelled, page 1 Error at BaseExceptionClosure xxx

pdf.js:2610 Uncaught (in promise) RenderingCancelledException {message: 'Rendering cancelled, page 2', name: 'RenderingCancelledException', type: 'canvas', stack: 'Error\n    at BaseExceptionClosure (http://localhos…calhost:8080/static/js/chunk-vendors.js:83019:20)'}

异常截图,点击右上角关闭X,pdf是正常预览,再次打开后也能正常预览,仅第一次打开预览有异常。
vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx,html,js,vue.js,pdf,前端
1.vue-pdf预览源码

        <el-button v-if="datas.length > 0" type="text" @click="openPdfPreview()">公示PDF</el-button>
        <el-dialog
          class="dialog-view"
          width="80%"
          title="公示PDF"
          :visible.sync="pdfDialogVisible"
          :append-to-body="true"
          :modal-append-to-body="true"
          center
          :before-close="handlePdfClose">
            <pdf
              class="pdf-preview"
              v-if="numPages > 0"
              v-for="i in numPages"
              :key="i"
              :src="src"
              :page="i"></pdf>
        </el-dialog>

	// 预览关键代码
    openPdfPreview() {
      if (!this.pdfSrc) {
        this.$message.warning('未上传pdf文件')
        return
      }

      this.pdfDialogVisible = true
     // pdfSrc     url地址
      let loadingTask = pdf.createLoadingTask(this.pdfSrc, {withCredentials: false});
      loadingTask.promise
        .then((pdf) => {
        // 计算总页数
          this.numPages = pdf.numPages;
        })
        .catch((err) => {
          console.error("pdf 加载失败", err);
        });

    },

vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx,html,js,vue.js,pdf,前端
2.预览异常解决方案
导致这个问题的主要原因是pdf预览组件,未设置高度,仅需要给pdf组件设置一个高度即可解决,设置高度后,再次预览,一切正常,代码如下:

  .pdf-preview {
    width: 60%;
    //flex: 1;
    //display: none;
    height: 100vh;
    margin: 0 auto;
  }

.pdf-preview canvas {
  height: 100% !important;
}

3.pdf预览显示不完整,比如字体太大,需要缩放等
a.优化代码,加入缩放处理逻辑,优点能动态调整缩放
b.修改父容器宽度,会相应缩放pdf的大小,缺点不能动态调整缩放

>>>.el-dialog {
  display: flex;
  flex-direction: column;
  margin:0 !important;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  //height: 100%;
  max-height: calc(100% - 80px);
  max-width: 65%;
}

vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx,html,js,vue.js,pdf,前端

4.相关大数据学习demo地址:
https://github.com/carteryh/big-data文章来源地址https://www.toymoban.com/news/detail-723416.html

到了这里,关于vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端使用vue-pdf、pdf-lib、canvas 给PDF文件添加水印,并预览与下载

    原理就是给显示pdf 的容器增加一层水印遮罩层 下载: 通过url获取pdf文件的arrarybuffer文件流 将arraybuffer数据转成pdf文档 添加水印字体(内置/自定义) 为每页pdf添加文字水印 保存pdf文件的unit64Arrary文件流 预览: 创建canvas容器(用于显示水印文字) 创建水印canvas 将水印canv

    2024年01月24日
    浏览(50)
  • vue前端预览pdf并加水印、ofd文件,控制打印、下载、另存,vue-pdf的使用方法以及在开发中所踩过的坑合集

    根据公司的实际项目需求,要求实现对pdf和ofd文件的预览,并且需要限制用户是否可以下载、打印、另存pdf、ofd文件,如果该用户可以打印、下载需要控制每个用户的下载次数以及可打印的次数。正常的预览pdf很简单,直接调用浏览器的预览就可以而且功能也比较全,但是一

    2024年02月16日
    浏览(131)
  • 使用vue-pdf插件加载pdf

    安装: 使用: 报错:  这样执行会报一个catch的错误,然后找到node_modules下面的vue-pdf目录src文件下面的pdfjsWrapper.js文件中,第197行的catch注释掉就好。

    2024年01月18日
    浏览(35)
  • vue-pdf 单列显示多个pdf页面

    注意:文件要放在public文件夹下,不然会报错:如果文件放在远程服务器上,则直接写远程地址 Warning: Ignoring invalid character \\\"33\\\" in hex string\\\' 原因:读取 PDF 文件时,路径不合法,导致读取不到文件; 在 vue-cli3 脚手架搭建的项目中,读取本地的 PDF 文件需要放到 public 文件夹中

    2024年02月15日
    浏览(39)
  • Vue-pdf踩坑记录

    最近在公司的一个项目中,需要在线预览PDF文件。基于vue-admin-electron的模板中开发。开发机系统为Windows,使用的框架为electron-vue。 坑1:在通过vue-router路由到含有vue-pdf组件的页面时报:“syntaxError: Unexpected token ” 错误。 解决方法: 将vue-pdf添加到webpack配置文件的白名单中。

    2024年02月11日
    浏览(30)
  • vue 导出多页pdf, window.print()实现

    如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式;采用window.print(),就会涉及到表格的截断、文本的截断等问题,而且需求要求每一页的pdf都有固

    2024年02月19日
    浏览(24)
  • vue中如何使用vue-pdf及相应报错解决

      目录 一、安装npm 依赖 二、引入组件 1、html中使用组件 单页 多页  2、数据处理 单页 多页  三、项目使用--代码部分 四、报错解决 前言 使用vue-pdf组件实现文件预览功能 并在文件上增加操作按钮 vue3不支持vue-pdf,vue3项目用pdfjs-dist   1、在根目录下输入一下命令 2、修改

    2023年04月12日
    浏览(25)
  • Module not found: Error: Can‘t resolve ‘vue-pdf‘ in ‘xxx‘

    使用命令npm run serve时vue项目报错: Module not found: Error: Can\\\'t resolve \\\'vue-pdf\\\' in \\\'xxx\\\'  解决方案: 运行命令 : 即可解决。 再次顺利执行npm run serve

    2024年02月11日
    浏览(36)
  • Vue中 引入使用 patch-package 为依赖打补丁 (以修改 vue-pdf 打包后 [hash].worker.js 路径问题为例)

    1. patch-package 简介 patch-package npm地址 patch-package github文档 如果不需要在生产中运行 npm (如:正在制作 web 前端,则可使用 --save dev) 1.2 使用方法 制作修补程序 首先更改 node_modules 文件夹中特定包的文件,然后运行 或使用 npx (npm 5.2) package-name 与所更改的程序包的名称相匹配

    2024年02月10日
    浏览(35)
  • 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件

    【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容 【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件 提示:这里可以添加本文要记录的大概内容: vue

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包