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

Shiny R中导出多页不同尺寸PDF的技术问询

解决方法

要实现不同PDF页面的自定义尺寸,不能一次性打开PDF设备后统一设置尺寸,而是需要分阶段操作PDF文件:先以7x7尺寸创建第一页并导出第一个图表,再以8x11尺寸追加后续所有页面的图表。具体操作逻辑如下:

  • 第一次调用pdf()时指定7x7的尺寸,打印第一个图表后关闭设备
  • 第二次调用pdf()时添加append=TRUE参数(确保在已有PDF后追加内容),设置8x11尺寸,打印剩余所有图表后关闭设备

修改后的完整代码如下:

output$exportall <- downloadHandler(
  filename = "Allplots.pdf",
  content = function(file){
    withProgress(message = 'Exporting', min=0, max=1, { 
      # 第一页:7x7尺寸
      pdf(file, width=7, height=7)
      print(plot1())
      dev.off()
      
      # 后续页面:8x11尺寸,追加到已有PDF
      pdf(file, width=8, height=11, append=TRUE)
      print(histogram())
      print(plots2())
      print(marrangeGrob(woodsbytimepoint(), nrow=2, ncol=1))
      print(digestion())
      print(map())
      print(marrangeGrob(allplots(), nrow=4, ncol=2, top=NULL))
      dev.off()
    })
  }
)

注意事项

  • 必须添加append=TRUE参数,否则第二次调用pdf()会覆盖之前生成的PDF内容
  • 如果需要更多不同尺寸的页面,可以重复“设置尺寸→打印图表→关闭设备→追加打开”的流程

内容的提问来源于stack exchange,提问作者Juan Pablo Rincon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:53:11