1

情况

你好。我正在尝试从 shinyapps.io 下载 .pptx Rmarkdown 报告。问题是,我想下载一个多字节字符的图表。(日本人)

由于shinyapps.io 不提供日文字体,因此我使用该showtext包来渲染带有多字节字符的图形,并且在浏览器中显示效果很好。

但是,当我尝试通过downloadHandler()usingrmarkdown::render下载 .pptx 文件时,下载的 .pptx 文件带有日文字体(以及“折叠”字体中的所有多字节字符。)

可重现的例子

#app.r
library(shiny)
library(tibble)
library(ggplot2)
library(magrittr)
library(showtext)

showtext.auto(TRUE)

ui <- fluidPage(
    downloadButton("dl","DL"),
    plotOutput("plot")
)

server <- function(input, output) {
    
    tempplot <- reactive({
        dat <- tibble(x = c("い&quot;,"ろ&quot;,"は&quot;),
                      y = c(10,20,30))
        ggplot(dat) +
            geom_col(aes(x = x, y = y))
    })
    
    output$plot <- renderPlot({
        tempplot()
    })
    
    output$dl <- downloadHandler(
        filename = function(){"test.pptx"},
        content  = function(con){
            rmarkdown::render(input = "test.Rmd",
                              output_file = con)
        }
    )
}

shinyApp(ui = ui, server = server)


#global.R
library(shiny)
library(tibble)
library(ggplot2)
library(magrittr)
library(showtext)
#test.Rmd

---
标题:“测试”
输出:powerpoint_presentation
---

```{r 设置,包括=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

##マルチバイト文字

```{r}
临时图()
```


结果

这是 shinyapps.io 应用程序中显示的内容。多字节字符按预期显示。

在此处输入图像描述

而下载的 .pptx 文件如下。

在此处输入图像描述

问题

有什么方法可以从 shinyapps.io 下载带有多字节字符的 .pptx 文件?(如 shinyapps.io 中的应用程序所示。

4

2 回答 2

1

经过一些额外的搜索,我找到了解决方案。

这个网页解释了我需要什么。

我只需要添加fig.showtext = TRUE到块中以将showtext包的效果应用于 rmarkdown 中的图形。

于 2020-08-09T12:19:21.420 回答
0

如果你尝试过

---
title: "test"
output: powerpoint_presentation
    self_contained: yes
    mode: selfcontained
---

在您的 .Rmd 文件中,或者只是

---
title: "test"
output: powerpoint_presentation
    self_contained: yes
---

这是假设将整个文档封装到一个文件中,其中包含重新生成所需的所有信息,但我没有将它与 .pptx 文件一起使用

于 2020-08-09T11:25:39.047 回答