mk1*_*117 2 html javascript pdf viewer pdf.js
我正在尝试使用 mozilla pdf.js项目加载 PDF 文档,尽管我已经获得了足够的知识,了解如何将文档加载到页面和缩放级别 ( #page=10&zoom=page-fit),并且我检查了查看器的选项,并发现我也可以通过URL参数向PDF文件添加范围请求......我不知道这个功能如何,所以我想我会在这里问......
我有 2 个 PDF 文件,我的问题是,我可以将范围参数添加到页面上每个按钮的 PDF 的 URL 中,以便在单击时仅加载所需的 PDF 页面吗?
我目前在我的系统上使用 XAMPP,我不确定 XAMPP 是否支持范围请求(用于测试),尽管该站点稍后将在线上传。网络主机通常支持范围请求吗?
如何分别获取 2 个 PDF 文件中所有页面的字节范围?是否有 PHP 脚本或某些 Windows 实用程序可以从 PDF 中获取页面范围(以字节为单位)?
一旦找到,如何在加载 PDF 时将这些范围请求添加到 viewer.html 页面,以便不会首先加载整个文档,而是首先加载需要的页面,然后disableAutoFetch=false才能让查看器获取剩余的 PDF:
如果没有为 PDF 文件发送其他范围请求,则获取 PDF 的剩余内容
(在隐身搜索时在某个博客上阅读类似的内容,不记得该博客的 URL,但 pdf.js wiki 在网站上没有提到这一点)。
编辑:根据pdfinfo 实用程序优化了我的 PDF 文件。

请求字节范围的功能不适用于最终用户。这是正确处理“线性化” PDF(通常也称为“网络优化” PDF)的隐含要求。
可以通过此命令检查线性化/网络优化的 PDF,例如:
pdfinfo filename.pdf | grep Optimized:
Run Code Online (Sandbox Code Playgroud)
线性化 PDF 的内部结构确实有些不同。基本上,它们的制作是为了使符合标准的阅读器软件不需要下载完整的文件,因此它可以访问trailer和xref表格部分(在标准 PDF 中,它们始终位于文件的末尾)。
需要拖车和 X/交叉参考表(这是一种内部 PDF 'ToC'),以便阅读器软件能够识别文件中根对象的位置,并从那里识别页面和所有其他对象.
相反,读者xref通过不同的方式获知根对象的位置,并且它可以开始渲染第一页(其对象需要在文件的开头),而其余的文件/对象/页面仍然存在下载。
这意味着用户可以点击书签、内部超链接,或在第一页可见时告诉读者“转到第 80 页”。阅读器然后从它已经处理的信息中知道它应该从符合标准的 Web 服务器请求哪个字节范围。
其他问题:
不,在“标准”PDF 中,与特定页面相关的对象几乎从不连续(这将是一个非常罕见的例外)。
是的,Web 服务器也需要支持字节范围传递(“字节服务”)。是的,所有现代 Web 服务器都可以配置为支持这一点。
不,我不知道有任何实用程序可以向您报告 PDF 的页面范围(以字节为单位)(如果是,它仅适用于线性化 PDF)。
TL;DR: 在 PDF 上下文中要求字节范围下载是合理的,前提是您的 PDF 文档首先是“网络优化”的!(并且请求某个字节范围必须由查看者完成,将用户对某个页面的请求转换为正确的范围编号......)
资源:
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |