Create a pptx object
pptx(title, template, list.definition = getOption("ReporteRs-list-definition")) # S3 method for pptx dim(x) # S3 method for pptx print(x, ...)
| title |
|
|---|---|
| template |
|
| list.definition | a list definition to specify how ordered and unordered
lists have to be formated. See |
| x | Object of class |
| ... | further arguments, not used. |
an object of class pptx.
To send R output in a pptx document, a slide (see addSlide.pptx
have to be added to the object first (because output is beeing written in slides).
Several methods can used to send R output into an object of class pptx.
addTitle.pptx add titles
addParagraph.pptx add text
addPlot.pptx add plots
addDate.pptx add a date (most often in the bottom left area of the slide)
addFooter.pptx add a comment in the footer (most often in the bottom center area of the slide)
addPageNumber.pptx add a page number (most often in the bottom right area of the slide)
addImage.pptx add external images
Once object has content, user can write the pptx into a ".pptx" file, see writeDoc.
dim returns slide width and height, position and
dimension of the next available shape in the current slide.
print print informations about an object of
class pptx.
Power Point 2007-2013 (*.pptx) file formats are the only supported files.
Document are manipulated in-memory ; a pptx's document is not written to the disk
unless the writeDoc method has been called on the object.
Wikipedia: Office Open XMLhttp://en.wikipedia.org/wiki/Office_Open_XML
# set default font size to 10 options( "ReporteRs-fontsize" = 11 ) # Word document to write pptx.file = "presentation_example.pptx" # Create a new document doc = pptx( title = "title" ) # display layouts names slide.layouts( doc )#> [1] "Blank" "Title Only" #> [3] "Title and Content" "Section Header" #> [5] "Title and Vertical Text" "Comparison" #> [7] "Content with Caption" "Title Slide" #> [9] "Two Content" "Vertical Title and Text"# add a slide with layout "Title Slide" doc = addSlide( doc, slide.layout = "Title Slide" ) #set the main title doc = addTitle( doc, "Presentation title" ) #set the sub-title doc = addSubtitle( doc , "This document is generated with ReporteRs.") ################ TEXT DEMO ################ # add a slide with layout "Title and Content" then add content doc = addSlide( doc, slide.layout = "Two Content" ) # add a title doc = addTitle( doc, "Text demo" ) sometext = c( "Lorem ipsum dolor sit amet, consectetur adipiscing elit." , "In sit amet ipsum tellus. Vivamus dignissim sit amet auctor." , "Quisque dictum tristique ligula." ) # add simple text doc = addParagraph( doc, value = sometext ) # Add "My tailor is rich" and "Cats and Dogs" # format some of the pieces of text pot1 = pot("My tailor" , textProperties(color="red" ) ) + " is " + pot("rich" , textProperties(font.weight="bold") ) pot2 = pot("Cats" , textProperties(color="red" ) ) + " and " + pot("Dogs" , textProperties(color="blue" ) ) doc = addParagraph(doc, set_of_paragraphs( pot1, pot2 ) ) ################ PLOT DEMO ################ if( requireNamespace("ggplot2", quietly = TRUE) ){ doc = addSlide( doc, slide.layout = "Title and Content" ) doc = addTitle( doc, "Plot examples" ) myplot = ggplot2::qplot(Sepal.Length, Petal.Length , data = iris, color = Species , size = Petal.Width, alpha = I(0.7) ) # Add titles and then 'myplot' doc = addPlot( doc, function( ) print( myplot ) ) } ################ FLEXTABLE DEMO ################ doc = addSlide( doc, slide.layout = "Title and Content" ) doc = addTitle( doc, "FlexTable example" ) # Create a FlexTable with data.frame mtcars, display rownames # use different formatting properties for header and body MyFTable = FlexTable( data = mtcars, add.rownames = TRUE, header.cell.props = cellProperties( background.color = "#00557F" ), header.text.props = textProperties( color = "white", font.size = 11, font.weight = "bold" ), body.text.props = textProperties( font.size = 10 ) ) # zebra stripes - alternate colored backgrounds on table rows MyFTable = setZebraStyle( MyFTable, odd = "#E1EEf4", even = "white" ) # applies a border grid on table MyFTable = setFlexTableBorders(MyFTable, inner.vertical = borderProperties( color="#0070A8", style="solid" ), inner.horizontal = borderNone(), outer.vertical = borderProperties( color = "#006699", style = "solid", width = 2 ), outer.horizontal = borderProperties( color = "#006699", style = "solid", width = 2 ) ) # add MyFTable into document doc = addFlexTable( doc, MyFTable ) # write the doc writeDoc( doc, file = pptx.file )# get pptx page dimensions ------ doc = pptx( title = "title" ) doc = addSlide( doc, "Title and Content" ) dim(doc)#> $position #> left top #> 0.91667 1.99653 #> #> $size #> width height #> 11.50000 4.75868 #> #> $slide.dim #> width height #> 13.33333 7.50000 #>