简体   繁体   中英

Setting line height in table created using flextable inserted into powerpoint using officer

I have drafted some dataframes with text inside that linebreaks are present in each cell, the dataframe is converted to flextable and then inserted into a powerpoint slide using officer . I found the line height a bit too much, I tried using the height_all function in flextable to make reduce the line height, but it is not working. Please find the sample code as below:

library(officer)
library(dplyr)

pptx.output.st00 <- read_pptx()

data(iris)
data.df <- head(iris) %>%
  as_tibble %>%
  mutate_all(.,as.character) %>%
  mutate_all(.,~paste0(.,'\ntesting'))

pptx.tbl <- data.df %>%
  flextable %>%
  height_all(height = 0.01) # this line is not working

pptx.output.st01 <- pptx.output.st00 %>%
  add_slide(.,layout = 'Title and Content',master = 'Office Theme') %>%
  ph_with(.,value=pptx.tbl,location=ph_location(type='body'))

print(pptx.output.st01,'presentation.output.pptx')

Currently I need to manually change the paragraph settings for table as the screen capture below:

在此处输入图像描述

Is there a way in officer of flextable to set up line height for table? Thanks!

I didn't satisfied by this ad hoc way, but padding(padding.top = 0, padding.bottom = 0.5) and height_all(0.45) gives a bit better output.

pptx.output.st01 <- pptx.output.st00 %>%
  add_slide(.,layout = 'Title and Content',master = 'Office Theme') %>%
  ph_with(.,
          value=pptx.tbl %>% 
            padding(padding.top = 0, padding.bottom = 0.5) %>% 
            height_all(0.45),
          location=ph_location(type='body'))

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM