You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中直接降低合并后PDF文件的质量与大小?

在R中压缩合并后的PDF文件

当然可以直接在R中降低合并后PDF的质量或大小,以下是两种实用方法:

方法1:使用qpdf包进行快速压缩

qpdf是专门处理PDF文件的R包,支持多种压缩等级,操作简单高效,适合大多数场景:

首先安装并加载包:

install.packages("qpdf")
library(qpdf)

然后对合并后的merged.pdf进行压缩:

# 压缩PDF,生成新的压缩文件
pdf_compress(
  input = paste0(working_dir, "/merged.pdf"),
  output = paste0(working_dir, "/compressed_merged.pdf"),
  compression_level = "high"  # 可选值:"low", "default", "high"
)
  • compression_level参数可按需调整:high压缩率最高,可能轻微降低图片质量;default在质量与大小间取平衡;low压缩程度最低。

方法2:针对含图片的PDF进行精细化压缩

如果你的PDF包含大量图片,想要精准控制图片质量来减小体积,可以结合pdftools和magick包操作:

  1. 安装并加载所需包:
install.packages(c("pdftools", "magick"))
library(pdftools)
library(magick)
  1. 提取PDF中的图片并压缩,再重新生成PDF:
# 读取合并后的PDF总页数
pdf_pages <- pdf_info(paste0(working_dir, "/merged.pdf"))$pages

# 逐页处理并压缩
compressed_pages <- lapply(1:pdf_pages, function(page_num) {
  # 将PDF页面转为图片
  img <- pdf_convert(
    paste0(working_dir, "/merged.pdf"),
    pages = page_num,
    format = "png",
    dpi = 150  # 降低dpi减小图片大小,默认值为300
  )
  # 压缩图片(quality范围0-100,值越小压缩率越高)
  compressed_img <- image_read(img) %>% 
    image_quality(quality = 75) %>% 
    image_write(tempfile(fileext = ".png"), format = "png")
  # 将压缩后的图片转回PDF页面
  pdf_render_page(compressed_img)
})

# 合并压缩后的页面为新PDF
pdf_combine(compressed_pages, output = paste0(working_dir, "/image_compressed_merged.pdf"))
  • 调整dpi和quality参数可控制图片清晰度与文件大小:dpi越低、quality值越小,文件体积越小,但画质会相应下降。

内容的提问来源于stack exchange,提问作者stats_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:32:22