Skip to contents

Wraps an image in an object that can then be embedded in a PowerPoint slide or within a Word paragraph.

The image is added as a shape in PowerPoint (it is not possible to mix text and images in a PowerPoint form). With a Word document, the image will be added inside a paragraph.


  width = 0.5,
  height = 0.2,
  unit = "in",
  guess_size = FALSE,
  alt = ""



image file path

width, height

size of the image file. It can be ignored if parameter guess_size=TRUE, see parameter guess_size.


unit for width and height, one of "in", "cm", "mm".


If package 'magick' is installed, this option can be used (set it to TRUE). The images will be read and width and height will be guessed.


alternative text for images


You can use this function in conjunction with fpar to create paragraphs consisting of differently formatted text parts. You can also use this function as an r chunk in an R Markdown document made with package officedown.


# wrap r logo with external_img ----
srcfile <- file.path(R.home("doc"), "html", "logo.jpg")
extimg <- external_img(
  src = srcfile, height = 1.06 / 2,
  width = 1.39 / 2

# pptx example ----
doc <- read_pptx()
doc <- add_slide(doc)
doc <- ph_with(
  x = doc, value = extimg,
  location = ph_location_type(type = "body"),
  use_loc_size = FALSE
print(doc, target = tempfile(fileext = ".pptx"))

fp_t <- fp_text(font.size = 20, color = "red")
an_fpar <- fpar(extimg, ftext(" is cool!", fp_t))

# docx example ----
x <- read_docx()
x <- body_add(x, an_fpar)
print(x, target = tempfile(fileext = ".docx"))