在 officer R 中,如何为 PowerPoint 格式化文本和项目符号级别

In officer R, how to format text and bullet point levels for PowerPoint

所以我正在使用 officer 包在 R 中创建自动 powerpoint 报告。我想创建一个具有多个级别的项目符号列表,但我需要能够为每一行设置特定的文本格式(即我希望前两个词为绿色,而该行的其余部分为黑色)。我尝试使用 unordered_list() 但此命令不允许我需要的特定文本格式。我已经尝试了下面的代码 colors/bolds 我想要的文本,但是 ph_add_par(level = ) 没有缩进要点。

有没有一种方法可以让我按照自己的意愿设置文本格式,同时还能控制项目符号级别?我希望它看起来像这样:

enter image description here

library(officer)
    report <- read_pptx()
    sprint_1 <- sprintf("%s total crimes in %s %s", 
                        tc20, params$month, params$year)

    report%>%
        add_slide(layout = 'Title and Content', master = 'Office Theme')%>%
      ph_with(value = "Academy: Summary Notes", location = ph_location_type(type = "title"))%>%
        ph_empty(location = ph_location_type("body")) %>%
        ph_add_par(level = 1L)%>%
        ph_add_text(str = sprint_1, style = fp_text(color = "black", font.size = 28, bold = TRUE, underlined = TRUE))%>%
        ph_add_par(level = 2L)%>%
        ph_add_text(str = paste("compared to this time in ", params$pastyear, " (", tc_ytd19, " total crimes)", sep = ""), 
                    style = fp_text(color = 'black', font.size = 24)) %>% 
        ph_add_text(str = paste(pct_chg_mth, "change", sep = " "),
                    style = fp_text(color = "green", font.size = 24)) -> report

我无法 运行 您的代码,但以下代码应该有所帮助。使用 block_list 并在 ph_with 调用集 level_list=c(1L, 2L, 1L)

library(officer)

fpt_blue_bold <- fp_text(color = "#006699", bold = TRUE)
fpt_red_italic <- fp_text(color = "#C32900", italic = TRUE)

value <- block_list(
  fpar(ftext("hello world", fpt_blue_bold)),
  fpar(ftext("hello", fpt_blue_bold), " ",
       ftext("world", fpt_red_italic)),
  fpar(
    ftext("blah blah blah", fpt_red_italic)))
value

doc <- read_pptx()
doc <- add_slide(doc)
doc <- ph_with(doc, value, location = ph_location_type(type = "body"), 
               level_list = c(1L, 2L, 1L))
print(doc, target = "test.pptx")