Добавить несколько фрагментов текста в слайд PowerPoint через сотрудника - PullRequest
0 голосов
/ 16 мая 2018

Используя пакет officer в R, при работе с PowerPoint вы можете добавить текст с помощью функции ph_with_text.Тем не менее, не ясно, как добавить несколько маркеров текста или как установить уровень отступа.Я хотел бы получить следующую структуру:

  • Вопрос 1
    • Ответ 1
    • Ответ 2
  • Вопрос 2
    • Ответ 1
    • Ответ 2

Я пробовал два метода, которые оба дают очень неправильные результаты.Я попытался взять свой текст и добавить \n и \n\t для создания разрывов строк и вкладок (например, как я бы создал структуру в PowerPoint.

doc = read_pptx()
doc = add_slide(layout = "Title and Content", master = "Office Theme")
doc = ph_with_text(doc,type = "body", 
      str = "Question 1\n\tAnswer 1\n\tAnswer 2\nQuestion 2\n\tAnswer 1\n\tAnswer 2", 
      index = 1)

Это создает маркеры, но не глубину.После каждого маркера перед каждым ответом есть вкладка «Пробел». Кроме того, это не новые маркеры, если я вручную отредактирую файл и нажму вкладку в одной точке маркера, каждая точка после также будет смещена. Очевидно, правильная структура не была достигнута.

Я также пытался просто вызывать ph_with_text несколько раз.

doc = add_slide(layout = "Title and Content", master = "Office Theme")
doc = ph_with_text(doc,type = "body", str = "Question 1", index = 1)
doc = ph_with_text(doc,type = "body", str = "Answer 1", index = 1)
doc = ph_with_text(doc,type = "body", str = "Answer 2", index = 1)
doc = ph_with_text(doc,type = "body", str = "Question 2", index = 1)
doc = ph_with_text(doc,type = "body", str = "Answer 1", index = 1)
doc = ph_with_text(doc,type = "body", str = "Answer 2", index = 1)

Но это заканчивается наложением текста на одну и ту же строку, и это нечитаемый беспорядок.

Какс помощью officer добавить текст к слайду, получив несколько маркеров и субэлементов с отступом?

1 Ответ

0 голосов
/ 16 мая 2018

Функция ph_with_ul - это необходимая вам функция

library(magrittr)
pptx <- read_pptx()
pptx <- add_slide(x = pptx, layout = "Title and Content", master = "Office Theme")
pptx <- ph_with_text(x = pptx, type = "title", str = "Example title")
pptx <- ph_with_ul(
  x = pptx, type = "body", index = 1,
  str_list = c("Level1", "Level2", "Level2", "Level3", "Level3", "Level1"),
  level_list = c(1, 2, 2, 3, 3, 1),
  style = fp_text(color = "red", font.size = 0) )
print(pptx, target = "example2.pptx")
...