Есть ли функция очистки разделов заметок слайдов Powerpoint?

Я пытаюсь прочитать ~ 100 слайдов PowerPoint и прочитать разделы заметок на каждом слайде. Я немного поработаю с текстом и напишу в csv постфактум, но сначала мне нужно получить заметки в работоспособном формате.

Сейчас я работаю с пакетом officer, функцией read_pptx, но я открыт для любых необходимых пакетов. Кажется, он не тянет заметки, но, может быть, я просто смотрю на это неправильно.

Чтобы показать немного того, что я пробовал -->

library(officer)

ppt_var <- read_pptx('test_presentation.pptx')
view(ppt_var)

В идеале я мог бы добавить текст каждого слайда заметок к отдельным переменным для записи в csv. Я уверен, что смогу справиться с манипуляциями, как только прочитаю заметки, но, похоже, не могу записать эту часть.

Спасибо за любые указатели или поддержку!


person iceicelogan    schedule 29.04.2019    source источник
comment
Вы всегда можете прочитать их из файла xml. Я не знаю пакета, который сделает это за вас.   -  person M--    schedule 29.04.2019
comment
Все офисные файлы заархивированы XML. Разархивируйте его, прочитайте xml, вы сможете найти заметки.   -  person Gregor Thomas    schedule 29.04.2019
comment
Другим вариантом было бы написать сценарий VB и запустить его из R. Посмотрите здесь совет по vbs. docs.microsoft.com/en-us/office/ vba/апи/   -  person M--    schedule 29.04.2019
comment
или C#: stackoverflow.com/questions/2164819/   -  person M--    schedule 29.04.2019
comment
Этот вопрос конкретно касается офицерского пакета, поэтому я проголосовал за его повторное открытие.   -  person G. Grothendieck    schedule 30.04.2019


Ответы (1)


Как это сделать, показано в коде здесь: https://github.com/davidgohel/officer/issues/117 .

На основе этого кода основано следующее:

library(magrittr)
library(officer)
library(xml2)

p <- read_pptx("mypresentation.pptx")
notes_dir <- file.path(p$package_dir, "ppt", "notesSlides")
files <- list.files(pattern = ".xml$", path = notes_dir, full.names = TRUE)

Notes <- lapply(files,
 . %>% 
   read_xml %>%
   xml_find_all("//a:t") %>%
   xml_text
)
person G. Grothendieck    schedule 29.04.2019
comment
Это решение хорошо сработало для моих целей, большое спасибо за публикацию! Я ценю исчерпывающий ответ. - person iceicelogan; 30.04.2019