【问题标题】:Sweave, Shiny : can't generate a PDF on the serverSweave,Shiny:无法在服务器上生成 PDF
【发布时间】:2020-04-24 02:25:24
【问题描述】:

我正在使用R Sweave 在服务器上的shiny 应用程序中生成PDF 报告。一切都在我的计算机上完美运行,在本地,我可以在应用程序中生成我的 PDF。它也适用于服务器。但是,当我想在 R Sweave 的背景中添加一个矩形标题时,它在服务器上不再起作用,无法生成。

这是我在R Sweave 中添加的代码,所以我的报告:

\usepackage{background}
\usepackage{graphicx}

\backgroundsetup{
   scale=0.5,
   angle=0,
   opacity=1,
   color=black,
   contents={\begin{tikzpicture}[remember picture, overlay]
      \node at ([yshift=-.6in] current page.north)
            {\includegraphics[width = \paperwidth]{myheader}};
     \end{tikzpicture}}
 }

我是不是忘记了什么?

谢谢

编辑:经过一番研究,我想我可能对脚本server.R中的这些功能有问题:

output$report <- downloadHandler(

  filename = function(){name()},
  content = function(file) {
    out = knitr::knit2pdf(input="my_report.Rnw",encoding = "UTF-8",clean=TRUE)
    file.rename(out, file)
    file.copy(file,paste0("export/",Sys.Date(),"_",name()))
  },

  contentType = 'application/pdf'
)

看来我可能在我的函数out = knitr::knit2pdf(input="my_report.Rnw",encoding = "UTF-8",clean=TRUE) 中忘记了一个参数。它似乎只能管理 UTF-8 和几何形式的文本,而不是图像。

【问题讨论】:

  • 我们需要您看到的错误消息。也是第一件事:一些服务器只是没有有完整的 texlive 安装。
  • 显示:“找不到文件,火狐在http://....地址找不到文件。”
  • 为了掩盖显而易见的问题:您引用了一个文件myheader。你当前目录下有这样的文件吗?
  • 我不明白你想用“有图像”说什么。你告诉 Latex 一个文件 myheader (无扩展名)要包括在内。然后您必须提供这样的文件。最后,你有一个 10 行的线段中断。也许将其调试为 3 行段(即首先是 \includegraphics,然后是 tikz 等等。这就是为什么我们通常要求您的问题没有提供的 minimally complete verifiable examples
  • 对不起,我回答得很快,我没有足够详细。主题第一部分的代码在我的 R Sweave 中,所以我要生成的报告。我想通过一个闪亮的应用程序生成它,这是代码的第二部分(在编辑中)。我的报告与 Shiny 应用程序完全不同(如果我在本地执行它)。它不会通过 Shiny 应用程序生成,我认为这是因为这个函数 "knitr::knit2pdf(input="my_report.Rnw",encoding = "UTF-8",clean=TRUE)"。

标签: r pdf shiny sweave generate


【解决方案1】:

问题解决了!在我的 R Sweave 中,我刚刚添加了 \usepackage{tikz} 并且它有效!

感谢 Dirk Eddelbuettel 的帮助。

【讨论】:

    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 2020-06-27
    • 2016-04-27
    • 1970-01-01
    • 2011-08-05
    • 2016-09-11
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多