dev.copy copies the graphics contents of the current device
  to the device specified by which or to a new device which has
  been created by the function specified by device (it is an
  error to specify both which and device).  (If recording
  is off on the current device, there are no contents to copy: this will
  result in no plot or an empty plot.)
  The device copied to becomes the current device.
dev.print copies the graphics contents of the current device
  to a new device which has been created by the function specified by
  device and then shuts the new device.
dev.copy2eps is similar to dev.print but produces an
  EPSF output file in portrait orientation (horizontal = FALSE).
  dev.copy2pdf is the analogue for PDF output.
dev.control allows the user to control the recording of
  graphics operations in a device.  If displaylist is "inhibit"
  ("enable") then recording is turned off (on). It is only safe
  to change this at the beginning of a plot (just before or just after a
  new page).  Initially recording is on for screen devices, and off for
  print devices.
dev.copy(device, …, which = dev.next())
dev.print(device = postscript, …)
dev.copy2eps(…)
dev.copy2pdf(…, out.type = "pdf")
dev.control(displaylist = c("inhibit", "enable"))A device function (e.g., x11,
    postscript, …)
Arguments to the device function above: for
    dev.copy2eps arguments to postscript and for
    dev.copy2pdf, arguments to pdf.
    For dev.print, this includes which and by default any
    postscript arguments.
A device number specifying the device to copy to.
The name of the output device: can be "pdf", or
    "quartz" (some macOS builds) or "cairo" (Windows
    and some Unix-alikes, see cairo_pdf).
A character string: the only valid values are
    "inhibit" and "enable".
dev.copy returns the name and number of the device which has
  been copied to.
dev.print, dev.copy2eps and dev.copy2pdf return
  the name and number of the device which has been copied from.
Note that these functions copy the device region and not a
  plot: the background colour of the device surface is part of what is
  copied.  Most screen devices default to a transparent background, which
  is probably not what is needed when copying to a device such as
  png.
For dev.copy2eps and dev.copy2pdf, width and
  height are taken from the current device unless otherwise
  specified.  If just one of width and height is
  specified, the other is adjusted to preserve the aspect ratio of the
  device being copied.  The default file name is Rplot.eps or
  Rplot.pdf, and can be overridden by specifying a file
  argument.
Copying to devices such as postscript and
  pdf which need font families pre-specified needs extra
  care -- R is unaware of which families were used in a plot and so
  they will need to manually specified by the fonts argument
  passed as part of ….  Similarly, if the device to be copied
  from was opened with a family argument, a suitable
  family argument will need to be included in ….
The default for dev.print is to produce and print a postscript
  copy.  This will not work unless options("printcmd") is
  set suitably and you have a PostScript printing system: see
  postscript for how to set this up.  Windows users may
  prefer to use dev.print(win.print).
dev.print is most useful for producing a postscript print
  (its default) when the following applies.  Unless
  file is specified, the plot will be printed.  Unless
  width, height and pointsize are specified
  the plot dimensions will be taken from the current device, shrunk
  if necessary to fit on the paper. (pointsize is rescaled if the
  plot is shrunk.)  If horizontal is not specified and the plot
  can be printed at full size by switching its value this is done
  instead of shrinking the plot region.
If dev.print is used with a specified device (even
  postscript) it sets the width and height in the same way as
  dev.copy2eps.  This will not be appropriate unless the device
  specifies dimensions in inches, in particular not for
  png, jpeg, tiff and bmp unless
  units = "inches" is specified.
dev.cur and other dev.xxx functions.
# NOT RUN {
x11() # on a Unix-alike
plot(rnorm(10), main = "Plot 1")
dev.copy(device = x11)
mtext("Copy 1", 3)
dev.print(width = 6, height = 6, horizontal = FALSE) # prints it
dev.off(dev.prev())
dev.off()
# }
Run the code above in your browser using DataLab