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

部署至shinyapps.io的Shiny App无法正常生成PDF报告

问题分析与解决

核心问题:PDF生成不完整

部署后下载的PDF仅显示%PDF-1.5 %,原因是你用cat函数直接输出内容的方式不符合Rmarkdown生成PDF的规范——本地环境可能因缓存或本地LaTeX配置兼容了这种写法,但shinyapps.io的服务器环境无法解析非标准的Rmd内容,导致只生成了PDF文件的头部,没有实际内容。

修复步骤

1. 重构report.Rmd

替换所有cat函数,改用标准Rmarkdown语法,示例如下:

---
title: "Plasmid Datasheet"
output: pdf_document
params:
  plasmid_ID: ""
  person_name: ""
  vector_name: ""
---

### 质粒信息
- 质粒ID:`r params$plasmid_ID`
- 填写人:`r params$person_name`
- 载体名称:`r params$vector_name`

这种写法能让Rmarkdown正确解析参数并生成完整的PDF文档。

2. 确保服务器环境有PDF生成依赖

shinyapps.io默认支持rmarkdown生成PDF,但如果需要额外LaTeX包,可在app.R开头添加:

library(tinytex)
tinytex::install_tinytex() # 首次部署时自动安装所需LaTeX环境

部署到shinyapps.io的标准流程

使用rsconnect包完成部署,步骤如下:

  1. 安装依赖包:
install.packages(c("shiny", "rmarkdown", "rsconnect", "tinytex"))
  1. 配置shinyapps.io账号信息:
    在shinyapps.io官网注册账号后,进入Account > Tokens页面复制你的账号名、Token和Secret,运行:
rsconnect::setAccountInfo(
  name = "你的shinyapps.io用户名",
  token = "你的Token",
  secret = "你的Secret"
)
  1. 部署应用:
    切换到包含app.R和report.Rmd的目录,运行:
rsconnect::deployApp()

额外排查点

  • 确保report.Rmd和app.R在同一目录下,部署时会自动上传该文件
  • 查看shinyapps.io应用页面的Logs标签,若有LaTeX相关错误,需补充对应的LaTeX包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:10:28