как сохранить flextable как png в R

Я уже следовал рекомендации ссылки: R сохранить FlexTable как html-файл в script, но похоже, что я столкнулся с другой проблемой, потому что это решение не сработало для меня. Функция vanilla.table () создает объект, отличный от функции flextable ().

Я использую flextable, потому что он допускает желаемые возможности форматирования.

Пример:

library(flextable)
library(rtable)

# The example below work.
myft <- vanilla.table(
   head(mtcars) )
myft
writeLines(as.html(myft), "MyFlexTable.html")

# The example below does not work.
myft <- regulartable(
  head(mtcars), 
  col_keys = c("am", "carb", "gear", "mpg", "drat" ))
myft
writeLines(as.html(myft), "MyFlexTable.html")

PS: я знаю, что можно загрузить фотографию вручную, нажав «Экспорт> Сохранить как изображение», однако мне нужно, чтобы это было запрограммировано

заранее спасибо!


person Fellipe Gomes    schedule 08.05.2018    source источник


Ответы (1)


Чтобы сохранить flextable как png, вам сначала нужно сохранить его как html-файл, а затем использовать веб-шот, чтобы получить png из html-файла.

library(flextable)
myft <- regulartable(
  head(mtcars), 
  col_keys = c("am", "carb", "gear", "mpg", "drat" ))

# create an Rmd file ----
library(rmarkdown)
rmd_name <- tempfile(fileext = ".Rmd")
cat("```{r echo=FALSE}\nmyft\n```", file = rmd_name)

# render as an html file ----
html_name <- tempfile(fileext = ".html")
render(rmd_name, output_format = "html_document", output_file = html_name )

# get a png from the html file with webshot ----
library(webshot)
webshot(html_name, zoom = 2, file = "regulartable.png", 
        selector = "body > div.container-fluid.main-container > div.tabwid > table")

введите здесь описание изображения

person David Gohel    schedule 16.05.2018
comment
Этот метод отлично работал до недавнего времени, когда он не мог захватить, когда текст выделен полужирным шрифтом. Использование MacOS 10.14.4, webshot 0.5.1 и R 3.5.0. - person Daniel Padfield; 27.06.2019
comment
используйте flextable::save_as_image и откройте проблему на странице GH, если вы встретите ошибку :) - person David Gohel; 27.06.2019