【问题标题】:In officer R, how to format text and bullet point levels for PowerPoint在军官 R 中,如何为 PowerPoint 格式化文本和项目符号级别
【发布时间】:2020-08-27 04:36:28
【问题描述】:

所以我正在使用officer包在R中创建一个自动的PowerPoint报告。我想创建一个具有多个级别的项目符号列表,但我需要能够为每一行设置特定的文本格式(即我希望前两个单词为绿色,而该行的其余部分为黑色)。我尝试使用 unordered_list() 但此命令不允许我需要的特定文本格式。我已经尝试了下面的代码,其中我想要的文本颜色/粗体,但是 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

【问题讨论】:

    标签: r powerpoint officer


    【解决方案1】:

    我无法运行您的代码,但以下代码应该会有所帮助。使用block_listph_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")
    

    【讨论】:

    • 嘿大卫!感谢您提供的很棒的包裹和您的回复。但是有什么方法可以在保持文本格式的同时缩进第二个和第三个要点?
    • 不抱歉,我将添加一个选项(我想删除/弃用 ph_add_* 函数)
    • 我已经更新了我的答案 - 要使用该功能,您需要从 github 更新包,直到它继续运行
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2020-09-22
    • 2019-06-03
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    相关资源
    最近更新 更多