## Copy Graphics Between Multiple Devices

## Usage

    dev.copy(device, ..., which=dev.next())
    dev.print(device=postscript, ...)
    dev.control(displaylist)

## Arguments

`device` | A device function (e.g., `x11`, `postscript`, ...)
`...` | Arguments to the `device` function above. For `dev.print`, this includes `which` and by default any `postscript` arguments.
`which` | A device number specifying the device to copy to
`displaylist` | A character string

## Description

`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`).

`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. This is most useful for producing a postscript copy from an on-screen device.

`dev.control` allows the user to control the recording of graphics operations in a device. If `displaylist` is "inhibit" then recording is turned off.

## Value

`dev.copy` returns the name and number of the device which has been copied to.

`dev.print` returns the name and number of the device which has been copied from.

## Note

Every device has a display list which records all of the graphics operations that occur in the device. `dev.copy` and `dev.print` copy graphics contents by copying the display list from one device to another device. Also, automatic redrawing of graphics contents following the resizing of a device depends on the contents of the display list.

After the command `dev.control("inhibit")`, graphics operations are not recorded in the display list so that `dev.copy` and `dev.print` will not copy anything and the contents of a device will not be redrawn automatically if the device is resized.

The recording of graphics operations is relatively expensive in terms of memory so the command `dev.control("inhibit")` can be useful if memory usage is an issue.

## See Also

`dev.cur` and other `dev.xxx` functions

## Examples

    x11()
    plot(rnorm(10), main="Plot 1")
    dev.copy(device=x11)
    mtext("Copy 1", 3)
    dev.print(width=6, height=6, horizontal=FALSE)
    dev.off(dev.prev())
    dev.off()

[Package Contents]