处理PDF以减小文件大小和/或复杂性

Tyl*_*ves 12 pdf mobile android publishing ios

我有PDF文件,我需要准备在移动设备上查看.更糟糕的情况是~50页,有很多全彩色图像和矢量艺术,文件大小约.40MB.这对于宽带上的PC观看是可以接受的,但由于下载时间长且移动时非常滞后(至少在我超频的Droid上),因此不适合移动观看.是否有任何工具或库可以将文件处理为简单的矢量内容,缩减采样/重新压缩图像,这类似的东西?

pdf格式的输出并不是绝对必要的,但它需要在没有软件下载的Android和iOS设备上可读.

Kur*_*fle 8

在移动设备上有一些可能会破坏PDF大小的主要因素:

  • 高分辨率图片(lo-res就足够了)
  • 嵌入式字体(如果没有它们,内容仍然可以"足够好")
  • 当前版本/视图不再需要PDF内容(某些对象的旧版本)
  • 嵌入式ICC配置文件
  • 嵌入的第三方文件(使用PDF作为容器)
  • 嵌入式作业单(用于打印)
  • 嵌入式Javascript
  • 还有一些

FOSS软件: Ghostscript可以尝试调整PDF格式,主要是对所用图片进行重新采样,并删除旧版本("代")的PDF对象,这些版本被新版本替换:

gswin32c.exe ^
  -o sized-down.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/ebook ^
  -dEmbedAllFonts=false ^
  -c ".setpdfwrite <</AlwaysEmbed [ ]>>" ^
  -f blown-up.pdf
Run Code Online (Sandbox Code Playgroud)

您可以在上面的命令行中添加更多参数,以便更多地缩小某些PDF的大小(通过设置较低的最大分辨率等等).下面是一个示例,可以对彩色和灰度图像执行下采样到72dpi:

gswin32c.exe ^
  -o sized-down.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/ebook ^
  -dEmbedAllFonts=false ^
  -dColorImageDownsampleThreshold=1.0 ^
  -dColorImageDownsampleType=/Average ^
  -dColorImageResolution=72 ^
  -dGrayImageDownsampleThreshold=1.0 ^
  -dGrayImageDownsampleType=/Average ^
  -dGrayImageResolution=72 ^
  -c ".setpdfwrite <</AlwaysEmbed [ ]>>" ^
  -f blown-up.pdf
Run Code Online (Sandbox Code Playgroud)

商业+闭源软件: callas pdfToolbox4能够通过将自定义配置文件应用于PDF缩小尺寸过程(甚至可以取消嵌入字体和ICC配置文件)来进一步减小文件大小.


更新2:请参阅以下(新)问题并给出答案:

它提供了一些示例PostScript代码,可以完全删除PDF中的所有(光栅)图像,而其余的页面布局保持不变.这在您不需要(光栅)图像但仅需要文本部分以减小文件大小的情况下非常有用.