View source: R/report_add_doc_content.R
report_add_doc_content | R Documentation |
Appends content to the body of a Word document
report_add_doc_content(
obnd,
type = NULL,
content = NULL,
fig_start_at = NULL,
tab_start_at = NULL,
verbose = TRUE
)
obnd |
onbrand report object |
type |
Type of content to add |
content |
Content to add |
fig_start_at |
Indicates that you want to restart figure numbering at
the specified value (e.g. 1) after adding this content a value of |
tab_start_at |
Indicates that you want to restart figure numbering at
the specified value (e.g. 1) after adding this content a value of |
verbose |
Boolean variable when set to TRUE (default) messages will be displayed on the terminal; Messages will be included in the returned onbrand object. |
For each content
types listed below the different content
outlined is expected. Text
can be specified in different formats: "text"
indicates plain text,
"fpar"
is formatted text defined by the fpar
command from the
officer
package, "ftext"
is a list of formatted text defined
by the ftext
command, and "md"
is text formatted in markdown
format (?md_to_officer
for markdown details).
"break"
page break, content is (NULL
) and a page break will be inserted here
"ph"
adds placeholder text substitution
"name"
placeholder name (value in body of text surrounded by three equal signs, e.g. if you have "===MYPH==="
. in the document the name is just "MYPH"
)
"value"
value to be substituted into the placeholder ("my text"
)
"location"
document location where the placeholder will be located (either "header"
, "footer"
, or "body"
)
"toc"
generates the table of contents, and content is a list
that must contain __one__ of the following.
"level"
number indicating the depth of the contents to display (default: 3
)
"style"
string containing the onbrand style name to use to build the TOC
"section"
formats the current document section
"section_type"
type of section to apply, either "columns"
, "continuous"
, "landscape"
, "portrait"
, "columns"
, or "columns_landscape"
"width"
override the default page width with this value in inches (NULL
)
"height"
override the default page height with this value in inches (NULL
)
"widths"
column widths in inches, number of columns set by number of values (NULL
)
"space"
space in inches between columns (NULL
)
"sep"
Boolean value controlling line separating columns (FALSE
)
"text"
content is a list containing a paragraph of text with the following elements
"text"
string containing the text content either a string or the output of "fpar"
for formatted text.
"style"
string containing the style to use (default NULL
will use the doc_def
, Text
style)
"format"
string containing the format, either "text"
, "fpar"
, or "md"
(default NULL
assumes "text"
format)
"imagefile"
content is a list containing information describing an image file with the following elements
image
string containing path to image file
caption
caption of the image (NULL
)
caption_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
notes
notes to add under the image (NULL
)
notes_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
key
unique key for cross referencing e.g. "FIG_DATA" (NULL
)
height
height of the image (NULL
)
width
width of the image (NULL
)
"ggplot"
content is a list containing a ggplot object, (eg. p = ggplot() + ....) with the following elements
image
ggplot object
caption
caption of the image (NULL
)
caption_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
notes
notes to add under the image (NULL
)
notes_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
key
unique key for cross referencing e.g. "FIG_DATA" (NULL
)
height
height of the image (NULL
)
width
width of the image (NULL
)
"table"
content is a list containing the table content and other options with the following elements:
table
data frame containing the tabular data
"style"
string containing the style to use (default NULL
will use the doc_def
, Table
style)
caption
caption of the table (NULL
)
caption_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
notes
notes to add under the image (NULL
)
notes_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
key
unique key for cross referencing e.g. "TAB_DATA" (NULL
)
header
Boolean variable to control displaying the header (TRUE
)
first_row
Boolean variable to indicate that the first row contains header information (TRUE
)
"flextable"
content is a list containing flextable content and other options with the following elements (defaults in parenthesis):
table
data frame containing the tabular data
caption
caption of the table (NULL
)
caption_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
notes
notes to add under the image (NULL
)
notes_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
key
unique key for cross referencing e.g. "TAB_DATA" (NULL
)
header_top
, header_middle
, header_bottom
(NULL
) a list with the same names as the data frame names containing the tabular data and values with the header text to show in the table
header_format
string containing the format, either "text"
, or "md"
(default NULL
assumes "text"
format)
merge_header
(TRUE
) Set to true to combine column headers with the same information
table_body_alignment
, table_header_alignment ("center") Controls alignment
table_autofit
(TRUE
) Automatically fit content, or specify the cell width and height with cwidth
(0.75
) and cheight
(0.25
)
table_theme
("theme_vanilla"
) Table theme
"flextable_object"
content is a list specifying the a user defined flextable object with the following elements:
ft
flextable object
caption
caption of the table (NULL
)
caption_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
notes
notes to add under the image (NULL
)
notes_format
string containing the format, either "text"
, "ftext"
, or "md"
(default NULL
assumes "text"
format)
key
unique key for cross referencing e.g. "TAB_DATA" (NULL
)
onbrand object with the content added to the body or isgood set to FALSE with any messages in the msgs field. The isgood value is a Boolean variable indicating the current state of the object.
# Read Word template into an onbrand object
obnd = read_template(
template = file.path(system.file(package="onbrand"), "templates", "report.docx"),
mapping = file.path(system.file(package="onbrand"), "templates", "report.yaml"))
# The examples below use the following packages
library(ggplot2)
library(flextable)
library(officer)
# Adding text
obnd = report_add_doc_content(obnd,
type = "text",
content = list(text="Text with no style specified will use the doc_def text format."))
# Text formatted with fpar
fpartext = fpar(
ftext("Formatted text can be created using the ", prop=NULL),
ftext("fpar ", prop=fp_text(color="green")),
ftext("command from the officer package.", prop=NULL))
obnd = report_add_doc_content(obnd,
type = "text",
content = list(text = fpartext,
format = "fpar",
style = "Normal"))
# Text formatted with markdown
mdtext = "Formatted text can be created using
**<color:green>markdown</color>** formatting"
obnd = report_add_doc_content(obnd,
type = "text",
content = list(text = mdtext,
format = "md",
style = "Normal"))
# Adding figures
p = ggplot() + annotate("text", x=0, y=0, label = "picture example")
imgfile = tempfile(pattern="image", fileext=".png")
ggsave(filename=imgfile, plot=p, height=5.15, width=9, units="in")
# From an image file:
obnd = report_add_doc_content(obnd,
type = "imagefile",
content = list(image = imgfile,
caption = "This is an example of an image from a file."))
# From a ggplot object
obnd = report_add_doc_content(obnd,
type = "imagefile",
content = list(image = imgfile,
caption = "This is an example of an image from a file."))
#Adding tables
tdf = data.frame(Parameters = c("Length", "Width", "Height"),
Values = 1:3,
Units = c("m", "m", "m") )
# Word table
tab_cont = list(table = tdf,
caption = "Word Table.")
obnd = report_add_doc_content(obnd,
type = "table",
content = tab_cont)
# onbrand flextable abstraction:
tab_cont = list(table = tdf,
caption = "Word Table.")
obnd = report_add_doc_content(obnd,
type = "table",
content = tab_cont)
# flextable object
tab_fto = flextable(tdf)
obnd = report_add_doc_content(obnd,
type = "flextable_object",
content = list(ft=tab_fto,
caption = "Flextable object created by the user."))
# Saving the report output
save_report(obnd, tempfile(fileext = ".docx"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.