Add Slides, Insert Texts and Plots to PowerPoint
A couple of functions to get R-stuff into MS-Powerpoint.
GetNewPP()
starts a new instance of PowerPoint and returns its handle. A new presentation with one empty slide will be created thereby. The handle is needed for addressing the presentation afterwards.GetCurrPP()
will look for a running PowerPoint instance and return its handle. NULL
is returned if nothing's found.
PpAddSlide()
inserts a new slide into the active
presentation.PpPlot()
inserts the active plot into PowerPoint. The image is transferred by saving the picture to a file in R and
inserting the file in PowerPoint. The format of the plot can be selected, as well as crop options and the
size factor for inserting.PpText()
inserts a new textbox with given text and box properties.
GetNewPP(visible = TRUE, template = "Normal") GetCurrPP() PpAddSlide(pos = NULL, pp = DescToolsOptions("lastPP")) PpPlot(type = "png", crop = c(0, 0, 0, 0), picscale = 100, x = 1, y = 1, height = NA, width = NA, res=200, dfact=1.6, pp = DescToolsOptions("lastPP")) PpText(txt, x = 1, y = 1, height = 50, width = 100, fontname = "Calibri", fontsize = 18, bold = FALSE, italic = FALSE, col = "black", bg = "white", hasFrame = TRUE, pp = DescToolsOptions("lastPP"))
visible |
logical, should PowerPoint made visible by |
template |
the name of the template to be used for the new presentation. |
pos |
position of the new inserted slide within the presentation. |
type |
the format for the picture file, default is |
crop |
crop options for the picture, defined by a 4-elements-vector. The first element is the bottom side, the second the left and so on. |
picscale |
scale factor of the picture in percent, default ist 100. |
x, y |
left/upper xy-coordinate for the plot or for the textbox. |
height |
height in cm, this overrides the picscale if both are given. |
width |
width in cm, this overrides the picscale if both are given. |
res |
resolution for the png file, defaults to 200. |
dfact |
the size factor for the graphic. |
txt |
text to be placed in the textbox |
fontname |
used font for textbox |
fontsize |
used fontsize for textbox |
bold |
logic. Text is set bold if this is set to |
italic |
logic. Text is set italic if this is to |
col |
font color, defaults to |
bg |
background color for textboxdefaults to |
hasFrame |
logical. Defines if a textbox is to be framed. Default is TRUE. |
pp |
the pointer to a PowerPoint instance, can be a new one, created by |
See PowerPoint-objectmodel for further informations.
The functions return the pointer to the created object.
Andri Signorell <andri@signorell.net>
## Not run: # Windows-specific example # let's have some graphic plot(1,type="n", axes=FALSE, xlab="", ylab="", xlim=c(0,1), ylim=c(0,1)) rect(0,0,1,1,col="black") segments(x0=0.5, y0=seq(0.632,0.67, length.out=100), y1=seq(0.5,0.6, length.out=100), x1=1, col=rev(rainbow(100))) polygon(x=c(0.35,0.65,0.5), y=c(0.5,0.5,0.75), border="white", col="black", lwd=2) segments(x0=0,y0=0.52, x1=0.43, y1=0.64, col="white", lwd=2) x1 <- seq(0.549,0.578, length.out=50) segments(x0=0.43, y0=0.64, x1=x1, y1=-tan(pi/3)* x1 + tan(pi/3) * 0.93, col=rgb(1,1,1,0.35)) # get a handle to a new PowerPoint instance pp <- GetNewPP() # insert plot with a specified height PpPlot(pp=pp, x=150, y=150, height=10, width=10) PpText("Remember?\n", fontname="Arial", x=200, y=70, height=30, fontsize=14, bold=TRUE, pp=pp, bg="lemonchiffon", hasFrame=TRUE) PpAddSlide(pp=pp) # crop the picture pic <- PpPlot(pp=pp, x=1, y=200, height=10, width=10, crop=c(9,9,0,0)) pic # some more automatic procedure pp <- GetNewPP() PpText("Hello to my presentation", x=100, y=100, fontsize=32, bold=TRUE, width=300, hasFrame=FALSE, col="blue", pp=pp) for(i in 1:4){ barplot(1:4, col=i) PpAddSlide(pp=pp) PpPlot(height=15, width=21, x=50, y=50, pp=pp) PpText(gettextf("This is my barplot nr %s", i), x=100, y=10, width=300, pp=pp) } ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.