0

R 官员软件包非常擅长让您将文本插入到 powerpoint 套牌中的现有占位符中。例如,这段代码:

library(tidyverse)
library(officer)

pres <- (read_pptx()
  %>% add_slide(layout = "Title and Content", master = "Office Theme")
  %>% ph_with_text(type="body", str="placeholder")
  %>% ph_add_par(level=2)
  %>% ph_add_text("Foo")
  %>% ph_add_par(level=3)
  %>% ph_add_text("Bar")
  %>% ph_add_par(level=4)
  %>% ph_add_text("Baz")
  %>% print(target="bullet_example1.pptx"))

生成一个带有看起来 像这样的项目符号的幻灯片。但是,它似乎在任意位置插入文本,我必须像这样使用 ph_empty_at() 函数:

pres <- (read_pptx()
  %>% add_slide(layout = "Title and Content", master = "Office Theme")
  %>% ph_empty_at(left=2, top=2, width=5, height=5)
  %>% ph_add_par(level=1)
  %>% ph_add_text("Placeholder")
  %>% ph_add_par(level=2)
  %>% ph_add_text("Foo")
  %>% ph_add_par(level=3)
  %>% ph_add_text("Bar")
  %>% ph_add_par(level=4)
  %>% ph_add_text("Baz")
  %>% print(target="bullet_example2.pptx"))

但是,这会导致文本看起来非常不同并且不尊重级别参数。似乎文本没有从幻灯片继承样式。

我问是因为我需要使用预先指定的 PPT 模板。我可以使用现有的占位符执行此操作,并获得所需的输出。如何在幻灯片上的任意位置插入这样的格式化文本?

4

1 回答 1

0

嗨使用 layout = "Blank" 似乎有效

pres <- (read_pptx()
     %>% add_slide(layout = "Blank", master = "Office Theme")
     %>% ph_empty_at(left=0, top=0, width=5, height=5)
     %>% ph_add_par(level=1)
     %>% ph_add_text("Placeholder")
     %>% ph_add_par(level=2)
     %>% ph_add_text("Foo")
     %>% ph_add_par(level=3)
     %>% ph_add_text("Bar")
     %>% ph_add_par(level=4)
     %>% ph_add_text("Baz")
     %>% ph_empty_at(left=5, top=5, width=5, height=5)
     %>% ph_add_par(level=1, id_chr = 3)
     %>% ph_add_text("Placeholder", id_chr = 3)
     %>% ph_add_par(level=2, id_chr = 3)
     %>% ph_add_text("Foo", id_chr = 3)
     %>% ph_add_par(level=3, id_chr = 3)
     %>% ph_add_text("Bar", id_chr = 3)
     %>% ph_add_par(level=4, id_chr = 3)
     %>% ph_add_text("Baz", id_chr = 3)
     %>% print(target="bullet_example2.pptx")
     )
于 2017-09-12T14:08:08.930 回答