Create a docx object

docx(title = "untitled", template, empty_template = FALSE,
  list.definition = getOption("ReporteRs-list-definition"))

# S3 method for docx
dim(x)

# S3 method for docx
print(x, ...)

Arguments

title

"character" value: title of the document (in the doc properties).

template

"character" value, it represents the filename of the docx file used as a template.

empty_template

wether the content of the template should be clear or not.

list.definition

a list definition to specify how ordered and unordered lists have to be formated. See list.settings. Default to getOption("ReporteRs-list-definition").

x

a docx objet

...

unused

Value

an object of class docx.

Details

Several methods can used to send R output into an object of class docx.

R outputs (tables, plots, paragraphs and images) can be inserted (and not added at the end) in a document if a bookmark exists in the template file.

Once object has content, user can write the docx into a ".docx" file, see writeDoc. dim returns page width and height and page margins of a docx object. print print informations about an object of class docx.

Note

Word 2007-2013 (*.docx) file formats are the only supported files. Document are manipulated in-memory ; a docx's document is not written to the disk unless the writeDoc method has been called on the object.

References

Wikipedia: Office Open XMLhttp://en.wikipedia.org/wiki/Office_Open_XML

See also

pptx

Examples

# set default font size to 10 options( "ReporteRs-fontsize" = 10 ) # Create a new document doc <- docx( title = "title" ) # display available styles styles( doc )
#> Normal heading 1 heading 2 #> "Normal" "Titre1" "Titre2" #> heading 3 heading 4 heading 5 #> "Titre3" "Titre4" "Titre5" #> heading 6 heading 7 heading 8 #> "Titre6" "Titre7" "Titre8" #> heading 9 Title Subtitle #> "Titre9" "Titre" "Sous-titre" #> Quote Intense Quote caption #> "Citation" "Citationintense" "Lgende" #> TOC Heading No Spacing List Paragraph #> "En-ttedetabledesmatires" "Sansinterligne" "Paragraphedeliste" #> rPlotLegend header footer #> "rPlotLegend" "En-tte" "Pieddepage" #> Titre1 BulletList Titre2 #> "Titre10" "BulletList" "Titre20" #> TitleDoc rRawOutput rTableLegend #> "TitleDoc" "rRawOutput" "rTableLegend"
# add title doc <- addParagraph( doc, "Document title", stylename = "TitleDoc" ) # add a paragraph doc <- addParagraph( doc , "This document is generated with ReporteRs." , stylename="Citationintense") # add page break doc <- addPageBreak( doc ) # add a title doc <- addTitle( doc, "Table of contents", level = 1 ) ################ TOC DEMO ################ # add a table of content doc <- addTOC( doc ) # add page break and then tables of contents for produced plots and tables doc <- addPageBreak( doc ) doc <- addTitle( doc, "List of graphics", level = 1 ) doc <- addTOC( doc, stylename = "rPlotLegend" ) doc <- addTitle( doc, "List of tables", level = 1 ) doc <- addTOC( doc, stylename = "rTableLegend" ) # add page break doc <- addPageBreak( doc ) ################ TEXT DEMO ################ # add a title doc <- addTitle( doc, "Text demo", level = 1 ) sometext = c( "Lorem ipsum dolor sit amet, consectetur adipiscing elit." , "In sit amet ipsum tellus. Vivamus dignissim arcu sit." , "Quisque dictum tristique ligula." ) # add simple text with 'Normal' style doc <- addParagraph( doc, value = sometext, stylename="Normal" ) # add simple text with 'BulletList' style doc <- addParagraph( doc, value = sometext, stylename="BulletList" ) # Add "My tailor is rich" and "Cats and Dogs" # format some of the pieces of text pot1 = pot("My tailor", textProperties(color="red", shading.color = "#CCCCCC" ) ) + " 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 ), stylename = "Normal" ) doc <- addParagraph(doc, "Silentium tractibus per minimis ne excita ut temptentur generalibus quam primordiis per clades post delictis iuge exitium silentium per et.", par.properties = parProperties( padding.left = 25, padding.right = 25) ) doc <- addParagraph(doc, pot("Gallus necem refert singula modum quae est quae quorum leo.", format = textItalic( ) ), par.properties = parProperties(list.style = "blockquote") ) ordered.list.level1 = parProperties(list.style = "ordered", level = 1 ) ordered.list.level2 = parProperties(list.style = "ordered", level = 2 ) doc <- addParagraph( doc, value = sometext, par.properties = ordered.list.level1 ) doc <- addParagraph( doc, value = sometext, par.properties = ordered.list.level2 ) ################ PLOT DEMO ################ # load ggplot2 if( requireNamespace("ggplot2", quietly = TRUE) ){ doc <- addTitle( doc, "Plot example", level = 1 ) # create a ggplot2 plot myplot = ggplot2::qplot(Sepal.Length, Petal.Length, data = iris , color = Species, size = Petal.Width, alpha = I(0.7) ) # Add myplot into object doc doc <- addPlot( doc = doc, fun = print, x = myplot ) # Add a legend below the plot doc <- addParagraph( doc, value = "my first plot", stylename = "rPlotLegend") } ################ FLEXTABLE DEMO ################ doc <- addTitle( doc, "FlexTable example", level = 1 ) # 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 ) doc <- addParagraph( doc, value = "my first table", stylename = "rTableLegend") # write the doc writeDoc( doc, file = "document_example.docx")
# get docx page dimensions ------ doc = docx( title = "title" ) dim( doc )
#> $page #> width height #> 8.5 11.0 #> #> $margins #> top right bottom left #> 1 1 1 1 #>