有没有一种方法可以使用 RMarkdown 在 PowerPoint 幻灯片上自动定位和调整可弯曲对象?

Is there a way to automatically position and fit a flextable object on a PowerPoint slide using RMarkdown?

问题

当我使用 RMarkdown 生成要打印到 PowerPoint 幻灯片的 flextable 对象时,RMarkdown 只是...在幻灯片上抛出 table。

```{r example}
tibble(
  COL_1 = seq(1, 25),
  COL_2 = seq(1, 25),
  COL_3 = seq(1, 25),
  COL_4 = seq(1, 25),
  COL_5 = seq(1, 25)
) |>
  qflextable() |>
  add_footer_row(values = "This is some example text just to highlight what gets lost in normal formatting.", colwidths = 5)
```

使用上面的代码,我最终得到这样的结果:

我想要的

理想情况下,我希望我的 table 位于幻灯片的中央并设置适合的格式,如下所示:

有没有人对我如何在不手动编辑 PowerPoint 幻灯片的情况下获得所需结果有任何建议?

注意 但没有收到可行的答案。

您可以使用“officedown”来实现。但这需要一些计算。首先知道幻灯片尺寸(office::slide_size()),然后是可伸缩尺寸(flextable_dim()),最后计算 PowerPoint 将使用的左侧和顶部位置。

Flextable 可以使用 knitr 块参数 ft.leftft.top.

定位在幻灯片中

以下为速解说明

---
output: 
  officedown::rpptx_document:
    reference_doc: template_demo.pptx
---

```{r include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(officedown)
library(officer)
library(flextable)
library(magrittr)

sl_size <- read_pptx("template_demo.pptx") %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  slide_size()

s_w <- sl_size$width 
s_h <- sl_size$height

ft <- flextable(head(iris)) %>% 
  fontsize(size = 18, part = "all") %>% 
  theme_vader() %>% 
  autofit()

ft_dim <- flextable_dim(ft)

left <- (s_w/2) - (ft_dim$widths/2)
top <- (s_h/2) - (ft_dim$heights/2)
```

```{r ft.left=left, ft.top=top}
ft
```