你好,
我正在使用官包上R.真相定制PPTX演示文稿是我移植代码形式记者。
我的问题是关于一个布局结构。其出发点是空PPTX我以进口的主题和格式设置上传;特别是我不使用
ppt <- read_pptx()
创建PPTX而是我导入从现有的文件:
ppt <- read_pptx("Blank_officer.pptx")
问题是,我dont't知道如何在这一点上填写的字段。这是我想达到什么:
我试着用下面的代码:
ppt <- read_pptx( ROOT_PATH( "template/Blank_officer.pptx" ) )
ppt <- ppt <- add_slide( ppt, "Internal Slide - 1 Column Text", master = "Blank" )
ppt <- ph_with_text(x = ppt, str = "A Title", type = "title")
ppt <- ph_with_text(ppt, "Bullet text 4", type = "body", index = 4)
ppt <- ph_with_text(ppt, "Bullet text 11", type = "body", index = 11)
ppt <- ph_with_text(ppt, "\nBullet text 11.2", type = "body", index = 11)
ppt <- ph_with_text(ppt, 2, type = "sldNum")
print( ppt, target = "officerTest.pptx" )
这似乎不错,但事实是,我是一个“先试用后失效”的方法,即选择索引参数由随机选择的价值,看看会发生什么。
你能解释我如何索引参数的作品?
是否有一个命令,显示了我,对于一个给定的幻灯片版式,这是我可以用在文本框中写的指数?
在替代:
我想知道,如果存在一个“标签”般的功能,即可以让我在文本框中导航就像在记者包添加段落功能的功能。
谢谢你的帮助,
你好
最后我得到它。事实是,这个问题是不平凡的,因为它发生索引值指的是PPT的不同部分,即它们随时间而改变!
当然,这意味着我们不能使用整数值,但我们必须使用不同的1:1映射。
要做到这一点,我们必须知道的不同的盒子,其是在幻灯片版式的名称。即:
library(officer)
ppt <- read_pptx()
layout_properties( ppt )
该数据帧包含幻灯片布局结构的信息。特别地,滑动姓名(名称列),组件类型(类型列)和段落的标签(ph_label列)。
我们的想法是用这个数据框来构建一个动态的地图,为每张幻灯片,类型和ph_label将返回正确的索引。
要做到这一点,我写了以下功能:pptIndexInfo过滤功能布局名称的布局数据帧,并分配给对象的渐进指数(从ID indipendent)。逸岸(我不知道为什么),我们将使用索引是那些我们刚刚产生的,而不是ID列值。
pptIndexInfo <- function( ppt, layout, master ){
aux = layout_properties(ppt, master = master, layout = layout)
aux$index = NA
for(type in unique(aux$type) ){
aux[ aux$type == type, "index" ] = 1:length(aux[ aux$type == type, "index" ])
}
return(aux)
}
在这一点上,我们只需为所需ph_label取出索引。
Title_index <- function(ppt, layout, master){
pptInd = pptIndexInfo(ppt, layout, master)
return( pptInd$index[ which(pptInd$ph_label == "Title") ] )
}
这个功能例如产生滤波布局数据帧,并提取所分配的索引ph_label“标题”。
当你有相同的“类型”多个盒子,这些功能是有用的。