| Title: | Polishing Content for 'Word' and 'PowerPoint' |
| Version: | 0.3.1 |
| Description: | Set of functions to polish content for Microsoft 'Word' and 'PowerPoint' into 'OOXML'. Polishing is the conversion of the R object into an 'OOXML' representation of the object that can then be added to 'Word' or 'PowerPoint' files. |
| License: | Apache License (≥ 2) |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| URL: | https://gsk-biostatistics.github.io/polish/, https://github.com/GSK-Biostatistics/polish/ |
| BugReports: | https://github.com/GSK-Biostatistics/polish/issues/ |
| Depends: | R (≥ 4.1.0) |
| Imports: | cli, commonmark, dplyr, flextable, ggplot2, glue, gt, htmltools, magick, officer (≥ 0.6.9), purrr, rlang, rmarkdown, sloop, tibble, webshot2, xml2 |
| Suggests: | testthat (≥ 3.0.0), withr |
| Config/testthat/edition: | 3 |
| NeedsCompilation: | no |
| Packaged: | 2026-05-30 17:40:34 UTC; ehh82309 |
| Author: | Romain François [aut], Ellis Hughes [aut, cre], Shannon Haughton [aut], GlaxoSmithKline Research & Development Limited [cph, fnd] |
| Maintainer: | Ellis Hughes <ellis.h.hughes@gsk.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-06-03 14:10:12 UTC |
Mark as a file by adding classes
Description
Mark as a file by adding classes
Usage
as_file(path)
Arguments
path |
file path |
Value
path with classes set to "file" and "file_{ext}" where ext is
the file extension
Examples
tf <- tempfile(fileext = ".txt")
writeLines("", tf)
as_file(tf)
Mark as a node to inject as is
Description
Mark as a node to inject as is
Usage
as_is(x, error_call = current_env())
Arguments
x |
raw ooxml passed through |
error_call |
The execution environment of a currently
running function, e.g. |
Value
adds the class "as_is" to the input text the content "as is" and not modify it when polishing
Mark text as markdown
Description
Mark text as markdown
Usage
as_md(x)
Arguments
x |
text to be interpreted as markdown |
Value
adds the class "as_ms" to the input text the content "as markdown" apply markdown formatting to the text when polishing
Convert to xml nodes
Description
Convert to xml nodes
Usage
as_xml_nodeset(
x,
ns = c("word", "pptx"),
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
as_xml_node(
x,
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
as_xml_node_word(
x,
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
as_xml_node_pptx(
x,
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
as_xml_word(
x,
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
as_xml_pptx(
x,
...,
.envir = parent.frame(),
.open = "{",
.close = "}",
error_call = current_env()
)
Arguments
x |
an object to convert to xml nodes |
ns |
word or pptx |
... |
These dots are for future extensions and must be empty. |
.envir, .open, .close |
forwarded to |
error_call |
The execution environment of a currently
running function, e.g. |
Value
an xml_nodeset
Check ... empty
Description
Wrapper around rlang::check_dots_empty() that only does the check
if the polish.dots_error is set to TRUE
Usage
polish_check_dots_empty(env = caller_env(), error = NULL, call = caller_env())
Arguments
env |
Environment in which to look for |
error |
An optional error handler passed to |
call |
The execution environment of a currently
running function, e.g. |
Polish content
Description
Polish content
Usage
polish_content(x, type, ..., error_call = current_env(), error_class = NULL)
Arguments
x |
object to be polished into ooxml |
type |
output type. Valid values are "word" and "pptx". |
... |
additional arguments for methods |
error_call |
The execution environment of a currently
running function, e.g. |
error_class |
Additional error class. |
Details
depending on type either the polish_content_pptx() or polish_content_word()
function is called.
Value
an object of class "polish_xml_nodeset". Contains XML that is viable Word or PowerPoint OOXML for addition to Word documents or PowerPoint presentations based on the "type".
Polish content for Powerpoint
Description
Polish content for Powerpoint
Usage
## S3 method for class 'flextable'
polish_content_pptx(
x,
ph = "<p:ph/>",
...,
full_width = FALSE,
page_size = NULL,
table_style = NULL,
pptx = NULL,
error_call = current_env()
)
## S3 method for class 'ggplot'
polish_content_pptx(
x,
ph = "<p:ph/>",
pptx,
...,
height = NULL,
width = NULL,
res = 300,
device = c("png", "svg", "jpeg"),
scale = 1,
error_call = current_env()
)
polish_content_pptx(x, ph = "<p:ph/>", pptx, ..., error_call = current_env())
## S3 method for class 'character'
polish_content_pptx(
x,
ph = "<p:ph/>",
pptx,
...,
escape = TRUE,
collapse = FALSE,
font_color = NULL,
font_style = NULL,
font_size = NULL,
font_typeface = NULL,
error_call = current_env()
)
## S3 method for class 'list'
polish_content_pptx(
x,
ph = "<p:ph/>",
pptx,
...,
list_type = c("none", "unordered", "ordered"),
error_call = current_env()
)
## S3 method for class 'file_png'
polish_content_pptx(
x,
ph = "<p:ph/>",
pptx,
...,
height = NULL,
width = NULL,
units = "in",
image_fit = c("stretch", "scale"),
error_call = current_env()
)
Arguments
x |
object to be polished |
ph |
placeholder |
... |
These dots are for future extensions and must be empty. |
full_width |
Logical, used to fit full size of given width |
page_size |
Number of rows to accommodate in a slide |
table_style |
Named list with two entries: style and options. style is the name of table style to apply as a character, options a character vector of options to apply from the table style, including: "Banded Columns", "Banded Rows", "First Column", "Header Row", "Last Column", and "Total Row" |
pptx |
The Powerpoint Presentation object |
error_call |
The execution environment of a currently
running function, e.g. |
width, height |
defaults to match the height and width of the placeholder provided. When that cannot be derived, it assumes the plot should be 5 inches tall and 6 inches wide. Users may set the width and height, but they most both be set. |
res |
Plot resolution. Also accepts a string input: "retina" (320), "print" (300), or "screen" (72). Applies only to raster output types. |
device |
what graphic device to use when saving the plot. Can be one of "png","svg", or "jpeg". |
scale |
Multiplicative scaling factor to use when saving the plot. See ggplot2::ggsave. |
escape |
Should |
collapse |
If |
font_color |
color of text. Enter as a hex code. |
font_style |
styling of text, vector including "bold","italic","underline". |
font_size |
point size of text if different from document default. |
font_typeface |
typeface of the text to be added if different from document default. |
list_type |
How to print the list. Options are "none", "unordered" and "ordered".
|
units |
|
image_fit |
Should the image be distorted to match the dimensions of the placeholder, or scaled up/down and keep dimension ratio (scale). Default is "stretch". |
Value
a "polish_xml_nodeset" of viable PowerPoint OOXML for addition to PowerPoint presentations.
Polish content for Word
Description
Polish content for Word
Usage
## S3 method for class 'flextable'
polish_content_word(
x,
inline = TRUE,
...,
align = NULL,
split = NULL,
topcaption = TRUE,
keepnext = NULL,
error_call = current_env()
)
## S3 method for class 'ggplot'
polish_content_word(
x,
inline = FALSE,
...,
height = 5,
width = 6,
units = "in",
res = 300,
error_call = current_env()
)
polish_content_word(x, inline = FALSE, ..., error_call = current_env())
## S3 method for class 'character'
polish_content_word(
x,
inline = FALSE,
...,
font_color = NULL,
font_style = NULL,
font_size = NULL,
font_typeface = NULL,
error_call = current_env()
)
## S3 method for class 'file_png'
polish_content_word(
x,
inline = FALSE,
...,
height = 5,
width = 6,
units = "in",
error_call = current_env()
)
Arguments
x |
object to be polished |
inline |
if |
... |
used in some methods |
align |
alignment of table and caption |
split |
should table be allowed to split |
topcaption |
should caption be above or below the table |
keepnext |
should content be marked for keep next. |
error_call |
The execution environment of a currently
running function, e.g. |
width, height, units |
Plot size in |
res |
Plot resolution. Also accepts a string input: "retina" (320), "print" (300), or "screen" (72). Applies only to raster output types. |
font_color |
color of text. Enter as a hex code. |
font_style |
styling of text, vector including "bold","italic","underline". |
font_size |
point size of text if different from document default. |
font_typeface |
typeface of the text to be added if different from document default. |
Value
an object of class "polish_xml_nodeset". Contains XML that is viable Word OOXML for addition to Word documents.
Show the xml of the polished version of a display in the browser
Description
Show the xml of the polished version of a display in the browser
Usage
show_xml(xml, wrap = TRUE)
Arguments
xml |
an xml node or nodeset |
wrap |
if TRUE, the xml is wrapped in a w:body node |
Details
This opens the xml in the browser, so that you can do View source and inspect the structure of the xml
Value
used for side effect of previewing xml in a browser. Helpful for inspecting the OOXML generated by this package.
Wrap the placeholder into a <p:sp> shell
Description
Wrap the placeholder into a <p:sp> shell
Usage
sp_shell(ph, error_call = current_env())
Arguments
ph |
placeholder |
error_call |
The execution environment of a currently
running function, e.g. |
Value
an object of class "polish_xml_nodeset". Contains XML that is viable PowerPoint OOXML for addition to PowerPoint documents.
xml namespaces
Description
xml namespaces
Usage
xml_nodeset_ns_spec(ns = c("word", "pptx"), error_call = caller_env())
Arguments
ns |
word or pptx |
error_call |
The execution environment of a currently
running function, e.g. |
Value
xml namespaces for word or pptx