【发布时间】: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