pdfjs 打印空白页

33 篇文章 0 订阅
11 篇文章 0 订阅

问题描述

最近遇到一个问题,前端使用 pdfjs 预览 PDF 文件时,在浏览器中执行打印,谷歌浏览器最后一页会出现空白。如下图所示。在火狐浏览器和 Safari 中是正常的,初步判断是某个代码兼容性问题。
在这里插入图片描述

问题查询

查询很多博客后,我先定位到 #printContainer 这个样式问题。

不同的博客给出很多解决方案,例如调节 width height, 或者 transform: scale(0.9) 等方案,我本地设置后无效。

https://blog.csdn.net/qq_38420994/article/details/129705471

https://blog.csdn.net/m0_47135993/article/details/129753368

https://stackoverflow.com/questions/28874940/pdf-js-inserting-blank-pages-when-printing

问题解决

最后,我查询 pdfjs 源代码,发现换行应该和下面的 css 相关

  #printContainer > .printedPage {
    page-break-after: always;
    page-break-inside: avoid;
    /* The wrapper always cover the whole page. */
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

其中 page-break-after 表示是否分页,源代码中是 always 始终分页,我改成了 auto 即可解决这个问题

  #printContainer > .printedPage {
  
    page-break-after: auto; /* 自动分页符(既不强制也不禁止) */
    
    page-break-inside: avoid;
    /* The wrapper always cover the whole page. */
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

这个属性的具体参考 MDN 官方介绍:

https://developer.mozilla.org/zh-CN/docs/Web/CSS/page-break-after

反思

pdfjs 这个库发展比较久,可能不同版本的代码不一样,解决的思路也不一样。实际上需要根据自己项目实际的代码版本,定位问题并解决。前几个 CSDN 博主的文章,虽然没有直接解决问题,不过给了我解决的方向和思路,向他们表示感谢。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PDF.js是一种用于在Web浏览器中显示PDF文件的开源JavaScript库。当在移动端使用PDF.js时,遇到空白的问题可能有以下原因: 1. 设备性能限制:移动设备相对于桌面设备的处理能力有限,可能无法完全支持PDF.js所需的资源和功能。这可能导致在移动设备上显示PDF文件时空白页面。 2. PDF文件格式问题:PDF.js虽然支持多种PDF文件格式,但某些特定格式的文件可能在移动设备上无法正常显示。这可能是由于文件格式与PDF.js之间的不兼容性导致的。 3. 网络连接问题:移动设备通常依赖于Wi-Fi或移动网络连接来加载PDF文件。如果网络连接不稳定或速度较慢,可能会导致PDF.js在移动设备上无法正确加载文件,导致空白页面。 解决PDF.js移动端空白问题的方法可以尝试以下方式: 1. 更新PDF.js版本:检查PDF.js是否有最新的版本可用,并尝试更新到最新版本。新版本通常会修复一些已知的问题和兼容性问题。 2. 优化PDF文件:尝试对PDF文件进行优化,确保其格式与PDF.js兼容。可以使用其他软件重新保存文件,以确保其与PDF.js兼容。 3. 优化移动设备性能:在移动设备上使用PDF.js时,关闭其他耗费性能的应用程序,清理设备缓存和内存,以提高设备的性能。 4. 检查网络连接:确保移动设备的网络连接稳定和快速。可以尝试切换到其他网络连接方式或位置,以改善网络连接质量。 总之,解决PDF.js在移动端空白问题需要综合考虑设备性能、网络连接和PDF文件格式等因素,并尝试通过更新PDF.js版本、优化PDF文件、优化设备性能和改善网络连接来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值