R :: сотрудник не может найти строки или идентификатор на слайде PowerPoint

#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. сэр, когда я делаю «тело», ваш код работает. но не для заголовка слайда заголовка макета и содержимого. Что делать?