pdfjs-dist实现pdf预览偶现空白不报错问题解决

javascript 复制代码
const calculateFitScale = (pageWidth, pageHeight) => {
  const canvas = canvasRef.value;
  if (!canvas) return 1;

  const container = document.getElementById("pdf-container");
  if (!container) return 1;

  const containerWidth = container.clientWidth;
  const containerHeight = container.clientHeight;

  if (containerWidth === 0 || containerHeight === 0) {
    return 1;
  }  // 关键代码

  // 计算适应宽度的scale
  const scaleWidth = containerWidth / pageWidth;
  //const scaleHeight = containerHeight / pageHeight;

  // 取平方根使缩放更合理(避免过度缩放)
  return Math.sqrt(scaleWidth);
  // return Math.min(scaleWidth); // 取最小值
};

问题出现情况: 在预览第一张图的时候通常都是成功的,后面的图偶尔会在cavnas中空白渲染,经排查就是初始化渲染的时候,计算适应容器的缩放比例这里出错了,关键解决代码如下:

if (containerWidth === 0 || containerHeight === 0) {

return 1;

}

读取pdf容器的宽高的时候读取到0 ,导致渲染了宽高为0的画布。

相关推荐
不思念一个荒废的名字2 分钟前
【黑马JavaWeb+AI知识梳理】后端Web基础03 - MySQL概述
前端·数据库·mysql
谢尔登1 小时前
【React Native】快速入门
javascript·react native·react.js
进取星辰1 小时前
32、跨平台咒语—— React Native初探
javascript·react native·react.js
橙子199110161 小时前
谈谈 Kotlin 中的构造方法,有哪些注意事项?
java·前端·kotlin
*neverGiveUp*2 小时前
本地分支git push 报错 fatal: The current branch XXXX has no upstream branch.
前端·git·gitea
AaronZZH2 小时前
为什么现代CSS应该选择OKLCH:从颜色科学到设计系统革新
前端·css
特立独行的猫a2 小时前
HarmonyOS 鸿蒙应用开发基础:转换整个PDF文档为图片功能
华为·pdf·harmonyos·pdf转图片
CaseyWei2 小时前
JS实现直接下载PDF文件
前端·javascript
球球和皮皮2 小时前
Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》
javascript·3d·前端框架·babylon.js
pianmian13 小时前
3dczml时间动态图型场景
前端·javascript·数据库