#r #powerpoint #officer
#r #powerpoint #сотрудник
Вопрос:
Сотрудник R package не может выполнить запись на слайд powerpoint. Layout_properties подтверждает, что поле ctrTitle существует, но slide_summary сообщает о нулевых строках.
> pres<-read_pptx()
> add_slide(x=pres,layout='Title Slide', master="Office Theme")
pptx document with 1 slide(s)
Available layouts and their associated master(s) are:
layout master
1 Title Slide Office Theme
2 Title and Content Office Theme
3 Section Header Office Theme
4 Two Content Office Theme
5 Comparison Office Theme
6 Title Only Office Theme
7 Blank Office Theme
> ph_add_text(x=pres, type="ctrTitle", str= "This is the title")
Error: unvalid id 0 (1 slide(s))
>
Поля завершаются в layout_properties.
> layout_properties(x=pres, layout="Title Slide", master="Office Theme")
master_name name type id ph_label
9 Office Theme Title Slide dt 4 Date Placeholder 3
17 Office Theme Title Slide ftr 5 Footer Placeholder 4
27 Office Theme Title Slide sldNum 6 Slide Number Placeholder 5
35 Office Theme Title Slide ctrTitle 2 Title 1
36 Office Theme Title Slide subTitle 3 Subtitle 2
ph offx offy cx
9 <p:ph type="dt" sz="half" idx="10"/> 0.500000 6.951389 2.333333
17 <p:ph type="ftr" sz="quarter" idx="11"/> 3.416667 6.951389 3.166667
27 <p:ph type="sldNum" sz="quarter" idx="12"/> 7.166667 6.951389 2.333333
35 <p:ph type="ctrTitle"/> 0.750000 2.329861 8.500000
36 <p:ph type="subTitle" idx="1"/> 1.500000 4.250000 7.000000
cy
9 0.3993056
17 0.3993056
27 0.3993056
35 1.6076389
36 1.9166667
>
Я попытался объединить команды в цепочку; сообщение об ошибке отличается.
> pres<-read_pptx()
> add_slide(x=pres,layout="Title Slide", master="Office Theme") %>%
ph_add_text(type='ctrTitle',str="This is the title")
Error: selection does not match any row in slide_summary. Use function slide_summary.
>
Это дало мне подсказку.
> slide_summary(pres, index=1)
[1] type id ph_label offx offy cx cy text
<0 rows> (or 0-length row.names)
>
slide_summary сообщает о нулевых строках. Может кто-нибудь, пожалуйста, помочь с этим?
Ответ №1:
Вот мой рабочий код.
pres <- read_pptx()
pres <- add_slide(pres, layout = "Title and Content", master = "Office Theme")
pres <- ph_empty(pres, type = "body")
pres <- ph_add_par(pres, level = 1)
pres <- ph_add_text(pres, str = "这里是文字")
И я думаю, вам следует рассмотреть библиотеку magrittr.
Тогда это можно записать следующим образом:
library("magrittr")
pres <- read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_empty(type = "body") %>%
ph_add_par(level = 1) %>%
ph_add_text(str = "这里是文字")
Я вижу, что вы хотите Title Slide
, тогда вы могли бы написать так просто:
pres <- read_pptx() %>%
add_slide(layout = "Title Slide", master = "Office Theme") %>%
ph_with_text(type = "ctrTitle", str = "这里是文字")
Комментарии:
1. Спасибо, брат. Я не могу воспроизвести этот результат.«> ph_add_text(x = pres, str = «Это заголовок слайда № 2») Ошибка: выделение соответствует более чем одной строке в slide_summary. Используйте функцию slide_summary. >
2. Что вы имеете в виду? Мой код не работает? Просто попробуйте мой последний код. Это для титульного слайда.
3. сэр, я получаю сообщение об ошибке, когда я добавляю add_slide(layout = «Заголовок и содержимое», master = «Тема Office») %>% ph_empty(pres, type = «ctrTitle») %>% ph_add_text (str = «Это заголовок на слайде № 2»). Ошибка гласит: ошибка: выбор соответствует более чем одной строке в slide_summary. Используйте функцию slide_summary . когда я проверяю slide_summary, там написано ноль строк
4. Я знаю, что происходит не так. Вы смешиваете разные макеты.
5. сэр, когда я делаю «тело», ваш код работает. но не для заголовка слайда заголовка макета и содержимого. Что делать?