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, ...)
| title |
|
|---|---|
| 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 |
| x | a |
| ... | unused |
an object of class docx.
Several methods can used to send R output into an object of class docx.
addTitle add titles
addParagraph add text
addPlot add plots
addFlexTable add tables. See FlexTable
addImage add external images
addTOC add table of content
addPageBreak add page break
addSection add section (for landscape orientation)
addDocument add an external docx file into
a docx object.
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.
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.
Wikipedia: Office Open XMLhttp://en.wikipedia.org/wiki/Office_Open_XML
# 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 #>