繁体   English   中英

使用 pdf.js 渲染大 pdf 的解决问题

[英]Resolution problem rendering large pdf with pdf.js

我试图在我的网站上显示一个相当大的 pdf。 一切都和官方的demo一模一样,配合example文件也能正常运行。 但是,当我通过添加?file=参数使用我的文件时,页面拒绝以任何超过 40% 的比例重绘,因此预览在正常比例下看起来很模糊(当我将比例从 20% 更改为 30% 时它仍然重绘,但是当我切换到 100% 时,页面将它以 40% 呈现的内容拉伸到 100% 比例,而不是以 100% 呈现另一个图像。 页面尺寸为 2766.8 x 2531.8mm(水平)。

我应该如何修改脚本以将最大分辨率提高到至少 100%?

在大多数(但不是全部)web 基于浏览器的 PDF 查看器中,调用 Acrobat 或类似 PDF.js 的克隆查看器将需要“建议的”放大设置为片段#zoom。

接受的限制固定在两个地方,

  1. 通过浏览器 pdf 扩展范围(通常为 8-6400%),以及
  2. 浏览器拥有允许的缩放范围(通常为 25-500%)

它不必被尊重,因为用户控制他们的 PDF 扩展器查看首选项,因此只有当下载可以返回到浏览器内联框架时,它不必这样做,它可以直接指向外部应用程序/pdf 查看器而无需 #缩放尊重。

这是请求实际比例(也放大@200 和缩小@50)的示例,用于在主要 stream 浏览器中进行测试,其中 PDF 扩展器将下载返回到浏览器。
每次点击都可能是一次新的下载,除非浏览器重复使用相同的本地缓存文件,这本身会导致其他问题,例如,当用户将 go 设置为活动的同一页面时。

通常 #zoom 是 after.pdf 例如sample.pdf#zoom= percent但注意这里的值被传递给 HTML worker。

http://mozilla.github.io/pdf.js/web/viewer.html#zoom=200 http://mozilla.github.io/pdf.js/web/viewer.html#zoom=100 http:// mozilla.github.io/pdf.js/web/viewer.html#zoom=50

请记住,无法保证缩放比例,尤其是在用户浏览器或设备具有覆盖缩放设置的情况下。

经过一天的工作,我已经意识到发生了什么。 在原始的viewer.js中,分辨率不是无限的。 相反,canvas 大小限制为 1600 万像素:

  maxCanvasPixels: {
    value: 16777216, //16M
    kind: OptionKind.VIEWER
  },

对于我的情况,我尝试了 256M 像素(因为此文件的 png 版本有 232M 像素)。 它确实以更多像素渲染了一个漂亮而清晰的预览,但渲染过程运行非常滞后,浏览器本身几乎没有响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM