使用Rmarkdown将图像添加到flextable中并在Word文档中生成我的flextable

时间:2019-06-19 09:56:38

标签: r ms-word r-markdown flextable officer

首先,我在Windows 10上使用R 3.6.0和Rstudio 1.2。

我正在使用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 :(得分:0)

是的,rmarkdown::word_document不支持在flextable中插入图像。

您将需要包officedown才能使用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")