簡體   English   中英

如何從官包中使用ph_with_text函數中的索引參數

[英]How to use index argument in ph_with_text function from officer package

再見,

我正在使用R上的Officer包進行自定義pptx演示文稿。事實是,我正在移植代碼形式Reporters

我的問題是關於布局的結構。 起點是我上傳的空pptx,以導入主題和格式設置; 特別是我不使用

ppt <- read_pptx()

創建pptx,而是從現有文件導入它:

ppt <- read_pptx("Blank_officer.pptx")

這就是標准幻燈片的布局 在此處輸入圖片說明

問題是我現在不知道如何填寫字段。 這是我想要達到的目標:

在此處輸入圖片說明

我嘗試使用以下代碼:

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

我得到以下結果: 在此處輸入圖片說明

看起來不錯,但事實是我正在通過“嘗試-失敗”方法來選擇索引參數,即通過隨機選擇值並查看會發生什么。

您能解釋一下index參數的工作原理嗎?

對於給定的幻燈片布局,有沒有向我顯示的命令,可以用來在文本框中編寫的索引是什么?

或者:

我想知道是否存在類似於“ Tab”的功能,即是否可以讓我在Reporters包中的addParagraph函數之類的文本框中導航的功能。

謝謝你的幫助,

再見

最后我明白了。 事實是,問題並非無關緊要,因為碰巧索引值引用了ppt的不同部分,即它們隨時間變化了!!!

當然,這意味着我們不能使用整數值,但必須使用其他1:1映射。

為此,我們必須知道幻燈片布局中不同框的名稱。 即:

library(officer)
ppt <- read_pptx()
layout_properties( ppt ) 

此數據框包含有關幻燈片布局結構的信息。 特別是幻燈片名稱( 名稱列),組件類型( 類型列)和段落標簽( ph_label列)。

想法是使用此數據框構建動態地圖,對於每張幻燈片,type和ph_label都將返回正確的索引。

為此,我編寫了以下函數: pptIndexInfo函數通過布局名稱過濾布局數據幀,並向對象分配一個漸進式索引( id中的 inipendendent)。 實際上,我們將使用的索引(我們不知道為什么)是剛剛生成的索引,而不是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“ Title”。

當您具有多個用於同一“類型”的框時,這些功能很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM