當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。