在网络上打开大型 pdf 文件

use*_*187 2 pdf web

我有一个 27MB 的 pdf 文件,托管在 web 中。当我尝试打开它时,需要花费一些时间才能打开它。那么有什么办法可以让我更快地查看这个大的 pdf 文件呢?我想有一些设置可以让我们在下载某些页面后查看一次文件的页面。对此的任何解决方案将受到高度赞赏

Kur*_*fle 5

您需要对 PDF 进行的操作是使其“网络优化”。技术上更正确的术语是使它们“线性化”:

  • Acrobat + Distiller 和许多其他工具可以做到这一点。
  • Ghostscript 还附带了一个名为 PostScript 编写的附加实用程序pdfopt.ps,可以执行此操作。只需运行:
    gs -q -dNODISPLAY -P- -dSAFER -dDELAYSAFER -- /path/to/pdfopt.ps input.pdf optimized.pdf,或者如果您使用的是 Windows:
    gswin32.exe -q -dNODISPLAY -P- -dSAFER -dDELAYSAFER -- c:/path/to/pdfopt.ps input.pdf optimized.pdf

通常pdfopt.ps应与 Ghostscript 一起安装在安装路径的lib/子目录中。如果没有,您可以从 Ghostscript Git 存储库下载 pdfopt.ps 。

线性化在内部重新组织 PDF,以便将 PDF 对象的内部 ToC(技术术语:其“外部参照表”)(其副本)放置在靠近文件开头(而不是末尾)的位置,再加上一些更多变化。

这样,符合规范的 PDF 阅读器将能够在加载文件的其余部分之前开始渲染第一页。如果您使用基于 HTTP 的协议通过网络访问 PDF,甚至可以在下载中间页面之前跳转到最后一页并查看它。但是,Web 服务器需要支持 HTTP“字节范围”请求(否则即使对于线性化 PDF,这也不起作用)。

您可以在 Adob​​e 网站上提供的官方 PDF-1.7 ISO 标准规范中阅读有关 PDF 线性化的更多详细信息

  • 在其(规范性)附录 F “线性化 PDF”中,从第 683 页开始,以及
  • 在其(资料性)附件 G “线性化 PDF 访问策略”中,从第 703 页开始。

可以在此处找到线性化 PDF 的示例


更新(2013-2-15)

自 Ghostscript 9.07 版本以来,通过在命令行中添加以下开关,可以直接生成线性化(“网络优化”)PDF 输出(无需上述的两步方法):

-dFastWebView=true
Run Code Online (Sandbox Code Playgroud)

由于该pdfopt.ps文件现在是多余的,因此已从当前的 Ghostscript 源存储库中删除。