The gtsave() function makes it easy to save a gt table to a file. The function guesses the file type by the extension provided in the output filename, producing either an HTML, PDF, PNG, LaTeX, or RTF file.

## Usage

gtsave(data, filename, path = NULL, ...)

## Arguments

data

A table object that is created using the gt() function.

filename

The file name to create on disk. Ensure that an extension compatible with the output types is provided (.html, .tex, .ltx, .rtf). If a custom save function is provided then the file extension is disregarded.

path

An optional path to which the file should be saved (combined with filename).

...

All other options passed to the appropriate internal saving function.

## Details

Output filenames with either the .html or .htm extensions will produce an HTML document. In this case, we can pass a TRUE or FALSE value to the inline_css option to obtain an HTML document with inlined CSS styles (the default is FALSE). More details on CSS inlining are available at as_raw_html(). We can pass values to arguments in htmltools::save_html() through the .... Those arguments are either background or libdir, please refer to the htmltools documentation for more details on the use of these arguments.

If the output filename is expressed with the .rtf extension then an RTF file will be generated. In this case, there is an option that can be passed through ...: page_numbering. This controls RTF document page numbering and, by default, page numbering is not enabled (i.e., page_numbering = "none").

We can create an image file based on the HTML version of the gt table. With the filename extension .png, we get a PNG image file. A PDF document can be generated by using the .pdf extension. This process is facilitated by the webshot package, so, this package needs to be installed before attempting to save any table as an image file. There is the option of passing values to the underlying webshot::webshot() function though .... Some of the more useful arguments for PNG saving are zoom (defaults to a scale level of 2) and expand (adds whitespace pixels around the cropped table image, and has a default value of 5). There are several more options available so have a look at the webshot documentation for further details.

If the output filename extension is either of .tex, .ltx, or .rnw, a LaTeX document is produced. An output filename of .rtf will generate an RTF document. The LaTeX and RTF saving functions don't have any options to pass to ....

## Examples

Use gtcars to create a gt table. Add a stubhead label with the tab_stubhead() function to describe what is in the stub.

tab_1 <-
gtcars %>%
dplyr::select(model, year, hp, trq) %>%
dplyr::slice(1:5) %>%
gt(rowname_col = "model") %>%
tab_stubhead(label = "car")

Export the gt table to an HTML file with inlined CSS (which is necessary for including the table as part of an HTML email) using gtsave() and the inline_css = TRUE option.

tab_1 %>% gtsave(filename = "tab_1.html", inline_css = TRUE)

By leaving out the inline_css option, we get a more conventional HTML file with embedded CSS styles.

tab_1 %>% gtsave(filename = "tab_1.html")

Saving as a PNG file results in a cropped image of an HTML table. The amount of whitespace can be set with the expand option.

tab_1 %>% gtsave("tab_1.png", expand = 10)

Any use of the .tex, .ltx, or .rnw will result in the output of a LaTeX document.

tab_1 %>% gtsave("tab_1.tex")

With the .rtf extension, we'll get an RTF document.

tab_1 %>% gtsave("tab_1.rtf")

## Function ID

13-1

Other Export Functions: as_latex(), as_raw_html(), as_rtf(), extract_summary()