在R中,如何在任意位置将文本添加到Powerpoint,以便它继承样式?



R officer包非常擅长让你将文本插入到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 模板。 我可以使用现有占位符执行此操作,并获得所需的输出。 如何在幻灯片上的任意位置插入这样的格式化文本?

嗨,使用布局="空白"似乎有效

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")
)

最新更新