Автоматическое позиционирование изображений и таблиц в PowerPoint Slide Officer - PullRequest
0 голосов
/ 02 января 2019

Привет, поэтому у меня есть попытка написать свою собственную функцию, которая будет автоматически масштабировать и выравнивать по центру изображения / таблицы, которые я генерирую из сотрудника. Функции top / left в add_image и add_table хороши, когда я добавляю каждую таблицу вручную, поскольку разные таблицы имеют разные размеры, но я не был уверен, как автоматически сделать это для изображений и таблиц различной формы. У меня есть следующий код для изображений:

Image <- function(PP,title,footer,pageNO,path){
  im <- load.image(path)
  width <- imager::width(im)
  height <- imager::height(im)
  ratio <- width/height
  if(ratio < 9.15 / 3.6){
    y <- 3.6
    x <- 3.6 * ratio
  }
  if(ratio >= 9.15 / 3.6){
    y <- 9.15 / ratio
    x <- 9.15
  }
  PP <- PP %>% 
    add_slide(layout = "Title and Content", master = "Office Theme") %>%
    ph_with_text(type = "title", str = title) %>%
    ph_with_text(type = "dt", str = format(Sys.Date())) %>%
    ph_with_img(type = "body", src = path, height = y, width = x) %>%
    ph_with_text(type = "ftr",str = footer) %>%
    ph_with_text(type = "sldNum", str = pageNO)
}

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

Тогда то же самое для таблиц, но я не знаю, как это сделать, поскольку мне пришлось бы автоматически масштабировать ширину и высоту столбцов на основе исходной ширины и высоты гибкого изображения, так как я не хотел бы терять аспект соотношение разве есть другой способ? Текущий код для этого: но это не делает никакого изменения размера:

Slide <- function(PP,title,footer,pageNO,table){
  PP <- PP %>% 
    add_slide(layout = "Title and Content", master = "Office Theme") %>%
    ph_with_text(type = "title", str = title) %>%
    ph_with_text(type = "ftr",str = footer) %>%
    ph_with_text(type = "dt", str = format(Sys.Date())) %>%
    ph_with_flextable(value = table, type = "body") %>%
    ph_with_text(type = "sldNum", str = pageNO)
}

Заранее большое спасибо, любая помощь будет принята с благодарностью

...