当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R compactPDF 压缩 PDF 文件


R语言 compactPDF 位于 tools 包(package)。

说明

更紧凑地重新保存 PDF 文件(尤其是插图)。 R CMD build --compact-vignettes 的支持函数。

用法

compactPDF(paths,
           qpdf = Sys.which(Sys.getenv("R_QPDF", "qpdf")),
           gs_cmd = Sys.getenv("R_GSCMD", ""),
           gs_quality = Sys.getenv("GS_QUALITY", "none"),
           gs_extras = character(),
           verbose = FALSE)

## S3 method for class 'compactPDF'
format(x, ratio = 0.9, diff = 1e4, ...)

参数

paths

PDF 文件路径的字符向量,或命名目录的长度为 1 的字符向量,当所有 ‘.pdf将使用该目录中的文件。

qpdf

给出 qpdf 命令路径的字符串。如果为空,则不会使用qpdf

gs_cmd

给出 GhostScript 可执行文件路径的字符串(如果要使用的话)。在 Windows 上,这是‘gswin32c.exe' 或者 'gswin64c.exe’。如果""(默认),该函数将在需要时尝试查找 GhostScript 的特定于平台的路径。

gs_quality

指示所需质量的字符串:选项为"none"(因此不使用GhostScript)、"printer"(300dpi)、"ebook"(150dpi)和"screen"(72dpi)。可以缩写。

gs_extras

要传递给 GhostScript 的更多选项的可选字符向量。

verbose

logical 或非负整数,指示是否应显示压缩实用程序的输出以及应显示多少。

x

"compactPDF" 的对象。

ratio , diff

报告限制:仅报告大小同时减少 ratiodiff 字节的文件。

...

要传递给其他方法或从其他方法传递的更多参数。

细节

默认情况下使用qpdf,可从https://qpdf.sourceforge.io/(包括作为 Windows 二进制文件)并包含在 CRAN macOS 发行版中R.如果gs_cmd是非空的并且gs_quality != "none",首先使用GhostScript,然后qpdf如果有的话。如果gs_quality != "none"gs_cmd"",将尝试查找 GhostScript 可执行文件。

qpdf 和/或 gs_cmd 对找到的所有 PDF 文件运行,并替换大小至少减少 10% 和 10Kb 的文件。

我们使用 qpdf 的策略是(无损)压缩 PDF 流和对象。 GhostScript 压缩流等(包括下采样和压缩嵌入图像),因此速度慢得多,并且可能会降低质量(但也可以生成更小的 PDF 文件)。然而,质量 "ebook" 完全足以在激光打印机上进行屏幕查看和打印。

如果 PDF 文件发生更改,它们将成为 PDF 版本 1.5 文件:Acrobat Reader 自 2003 年版本 6 起就支持这些文件,因此这不太可能造成困难。

流压缩通常会带来巨大的收益。大多数 PDF 文档都是通过对象压缩生成的,但这似乎不是 MiKTeX 的 pdflatex 的默认设置。对于某些 PDF 文件(尤其是包插图),使用 GhostScript 可以显著减少嵌入图像(通常是屏幕截图)占用的空间。

如果同时选择 GhostScript 和 qpdf(当找到 gs_quality != "none" 和两个可执行文件时),它们将按该顺序运行,并且大小减少将应用于所实现的总压缩。

c("compactPDF", "data.frame") 的对象。它有两列,已更改文件的旧大小和新大小(以字节为单位)。

formatprint 方法:后者将 ... 传递给 format 方法,因此将接受 ratiodiff 参数。

注意

使用的外部工具可能会在未来版本中发生变化。

通常,GhostScript 的更新会产生更好的压缩效果(好几倍),因此如果可能,请使用可用的最新版本。

也可以看看

resaveRdaFiles

有关压缩 PDF 文件的其他工具,请参阅“编写 R 扩展”手册。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Compact PDF Files。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。