Добавление изображения в гибкую таблицу и создание моей гибкой таблицы в документе Word с помощью Rmarkdown - PullRequest
0 голосов
/ 19 июня 2019

Во-первых, я использую R 3.6.0 и Rstudio 1.2 с Windows 10.

Я использую flextable и Officer для создания документа Word.В эту таблицу я вставляю несколько изображений.Для этого я использую flextable.Когда я использую этот код со сценарием R и офицером, которые работают.Но когда я использую этот код в Rmarkdown для генерации документа Word, это не работает.Код под Rmardown:


library(flextable)
library(officer)

img.file <- file.path( R.home("doc"), "html", "logo.jpg" )

myft <- flextable( head(iris))

myft <- compose( myft, i = 1:3, j = 1,
 value = as_paragraph(
   as_image(src = img.file, width = .20, height = .15),
   " blah blah ",
   as_chunk(Sepal.Length, props = fp_text(color = "red"))
 ),
 part = "body")

myft

У меня есть сообщение, которое говорит мне: «Извините, мы не можем открыть документ, потому что обнаружили проблему с его содержанием.

Я думаю,Существует проблема с изображением в flextable. Когда я удаляю эти изображения, это работает.

1 Ответ

0 голосов
/ 19 июня 2019

Да, вставка изображений в flextable не поддерживается с rmarkdown::word_document.

Вам понадобится пакет officedown, чтобы иметь возможность вставлять изображения в flextable с помощью R Markdown for Word.Вам нужно только заменить output: rmarkdown::word_document на output: officedown::rdocx_document.

---
date: "`r Sys.Date()`"
author: "Your Name"
title: "Untitled"
output: 
  officedown::rdocx_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, fig.cap = TRUE)
library(officedown)
```

```{r}
library(flextable)
library(officer)

img.file <- file.path( R.home("doc"), "html", "logo.jpg" )

myft <- flextable( head(iris))

myft <- compose( myft, i = 1:3, j = 1,
                 value = as_paragraph(
                   as_image(src = img.file, width = .20, height = .15),
                   " blah blah ",
                   as_chunk(Sepal.Length, props = fp_text(color = "red"))
                 ),
                 part = "body")

autofit(myft)
```

Чтобы установить пакет, выполните следующую команду (еще не в CRAN): remotes::install_github("davidgohel/officedown")

...