3

我想使用我公司的预定义模板在不同(固定)位置向 Power Point 幻灯片添加几个占位符。我只使用该模板来获取字体样式、幻灯片的页眉和页脚,而不是每张幻灯片的内容。为此,我可以在任何我想要的地方添加文本和图像。然后我需要在每个占位符中添加一些文本段落。例如,我可以使用下面的代码来做到这一点。但不好的是,如果我想在第一个占位符中添加一个段落,我必须指定占位符的 id_chr(在本例中为“2”和“3”),这只有在我添加空占位符后才知道在演示文稿中,在运行时。

有没有办法添加一个空占位符,同时指定一个 ID,以后可以使用该 ID 向其添加内容,而不是仅在运行时才知道的 id_chr?也许也使用 ph_label?

require(magrittr)
require(officer)

TARGET_FILE = "ph_add_fpar.pptx"
setwd(file.path("E:", "Work", "Reporting"))
file.remove(TARGET_FILE)

MASTER_LAYOUT = "Blank"
PICTURE_AND_TEXT_PAGE_LAYOUT = "Internal Slide - Picture and Text"

bold_face <- shortcuts$fp_bold(font.size = 30)
bold_redface <- update(bold_face, color = "red")

fpar_1 <- fpar(ftext("Hello ", prop = bold_face),
              ftext("World", prop = bold_redface ),
              ftext(", \r\nhow are you?", prop = bold_face ) )

fpar_2 <- fpar(ftext("Hello ", prop = bold_face),
               ftext("World", prop = bold_redface ),
               ftext(", \r\nhow are you again?", prop = bold_face ) )

doc <- read_pptx(path = file.path(getwd(), "Template.pptx")) %>%
  add_slide(layout = PICTURE_AND_TEXT_PAGE_LAYOUT, master = MASTER_LAYOUT) %>%
  ph_empty_at(left = 1,top = 1,width = 3,height = 2,template_type = "body",template_index = 4) %>%
  ph_empty_at(left = 4,top = 1,width = 3,height = 2,template_type = "body",template_index = 4) %>%
  ph_add_fpar(value = fpar_1, type = "body", level = 1, id_chr = "2") %>%
  ph_add_fpar(value = fpar_2, type = "body", level = 1, id_chr = "3")

print(doc, target = TARGET_FILE)

system("cmd.exe", input = TARGET_FILE)

谢谢

4

0 回答 0