Add an external image into a document object
addImage(doc, filename, ...)# S3 method for docx
addImage(doc, filename, bookmark,
par.properties = parProperties(text.align = "center", padding = 5), width,
height, ...)
# S3 method for pptx
addImage(doc, filename, offx, offy, width, height, ...)
document object
"character"
value, complete filename
of the external image
further arguments passed to other methods
a character value ; id of the Word bookmark to replace by the image. optional. if missing, image is added at the end of the document.
paragraph formatting properties of the paragraph that contains images.
An object of class parProperties
. It has no effect if doc is
a pptx
object.
image width in inches
image height in inches
optional, x position of the shape (top left position of the bounding box) in inches. See details.
optional, y position of the shape (top left position of the bounding box) in inches See details.
a document object
Arguments width
and height
can be defined with functions
png::readPNG
, jpeg::readJPEG
or bmp::read.bmp
.
When document object is a pptx
, width and height are not mandatory.
By default, image is added to the next free 'content' shape of the current slide.
See slide.layouts.pptx
to view the slide layout.
If arguments offx and offy are missing, position is defined as
the position of the next available shape of the slide. This
dimensions can be defined in the layout of the PowerPoint template used to create
the pptx
object.
# NOT RUN {
# get rlogo
img.file <- file.path( Sys.getenv("R_HOME"), "doc", "html", "logo.jpg" )
# tests to use later
has_img <- file.exists( img.file )
has_jpeg <- requireNamespace("jpeg", quietly = TRUE)
has_wmf <- exists("win.metafile")
is_sunos <- tolower(Sys.info()[["sysname"]]) == "sunos"
# create a wmf file if possible
if( has_wmf ){
win.metafile(filename = "image.wmf", width = 5, height = 5 )
barplot( 1:6, col = 2:7)
dev.off()
}
# Image example for MS Word -------
# }
# NOT RUN {
doc <- docx()
if( has_img && has_jpeg ){
dims <- attr( jpeg::readJPEG(img.file), "dim" )
doc <- addImage(doc, img.file, width = dims[2]/72,
height = dims[1]/72)
}
if( has_wmf ){
doc <- addImage(doc, "image.wmf", width = 5, height = 5 )
}
writeDoc( doc, file = "ex_add_image.docx" )
# }
# NOT RUN {
# Image example for MS PowerPoint -------
# }
# NOT RUN {
if( !is_sunos ){
doc <- pptx()
if( has_img && has_jpeg ){
doc <- addSlide( doc, "Title and Content" )
dims <- attr( jpeg::readJPEG(img.file), "dim" )
doc <- addImage(doc, img.file, width = dims[2]/72,
height = dims[1]/72)
}
if( has_wmf ){
doc <- addSlide( doc, "Title and Content" )
doc <- addImage(doc, "image.wmf", width = 5, height = 5 )
}
writeDoc( doc, file = "ex_add_image.pptx" )
}
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab