会社の定義済みテンプレートを使用して、Power Point スライドに複数のプレースホルダーを異なる (固定) 位置に追加したいと考えています。そのテンプレートは、スライドのフォント スタイル、ヘッダーとフッターを取得するためだけに使用しますが、各スライドのコンテンツには使用しません。このため、好きな場所にテキストと画像を追加できます。次に、これらの各プレースホルダーに、いくつかのテキスト パラグラフを追加する必要があります。たとえば、次のコードを使用してこれを行うことができます。しかし悪い点は、最初のプレースホルダーに段落を追加したい場合、プレースホルダーの id_chr (この例では "2" と "3") を指定する必要があることです。これは、空のプレースホルダーを追加した後にのみわかります。プレゼンテーションで、実行時に。
実行時にのみ知られている id_chr の代わりに、その ID を使用して後でコンテンツを追加するために使用できる ID も指定する空のプレースホルダーを追加する方法はありますか? 多分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)
ありがとうございました