[英]Fit Flextable to slide size in PowerPoint with officer
我制作了一個具有各種格式的 flextable,但是當我添加到 PowerPoint 時,表格超出了幻燈片的大小。
我不確定我是否必須通過 go 並設置列和行大小,或者是否應該在我的 PowerPoint 模板主設置中進行設置。 我看到你可以在哪里設置列和行的大小,但沒有關於整個 flextable 的尺寸。
代碼如下。
library(officer)
library(rvg)
library(flextable)
library(tidyverse)
library(data.table)
pColor <- "#3c5cb0"
std_border = fp_border(color="gray")
outSatTbl <- flextable(head(iris, 19))
outSatTbl <-
outSatTbl %>%
bg(bg = pColor, part = "header") %>%
color(color = "white", part = "header") %>%
merge_h(part = "header") %>%
add_header_lines(values = "Demo Table") %>%
align(align = "center", part = "header") %>%
align(align = "center", part = "body") %>%
hline(part="body", border = std_border ) %>%
autofit()
# ---------- Get PowerPoint template and initiate ---------- #
setwd("C:/.../WorkingFolder")
demo <- read_pptx("Rtest.pptx")
# ---------- Add Inpatient table to Power Point ----------- #
demo <- add_slide(demo , layout = "Title and Content", master = "Theme1") %>%
ph_with(outSatTbl, location = ph_location_type(type = "body"), use_loc_size = T) %>%
print(mho, target = "first_example.pptx")
這使得桌子太大。 我可以調整它的大小,桌子看起來仍然很棒,只是想找到我缺少的東西。
一種選擇是設置默認值並更改font.size
a la:
set_flextable_defaults(
font.size = 28
)
在你的塊內。
您還可以根據源 df 的行數 (nrow()) 或字符數 (nchar()) 等條件創建一些 flextable 參數。
#not run
iris_subset <- ...subset of iris...
if(nrow(iris_subset)>16){
new_fontsize <- something_smaller
}else{
new_fontsize <- current_fontsize
}
outSatTbl <-
flextable(iris_subset) %>%
fontsize(size = new_fontsize, part="body)
也可以使用類似的方法來對表格進行子集化並在附加幻燈片上放置附加行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.