Example 6: Page Wrap

Handle Wide Tables with Page Wrap

Page wrapping will occur automatically if the table width exceeds the available page width. But page wrapping can also be controlled using the page_wrap parameter on the define() function. Below is an example. Also note the use of the id_var option to cause the vehicle column to be retained on each wrapped page.

library(reporter)

# Create temp file name
tmp <- file.path(tempdir(), "example6.pdf")

# Prepare data
dat <- mtcars[1:10, ]
dat <- data.frame(vehicle = rownames(dat), dat)

# Define table
tbl <- create_table(dat, show_cols = 1:8) %>% 
  define(vehicle, label = "Vehicle", width = 3, id_var = TRUE, align = "left") %>% 
  define(mpg, label = "Miles per Gallon", width = 1) %>% 
  define(cyl, label = "Cylinders", format = "%.1f") %>% 
  define(disp, label = "Displacement") %>% 
  define(hp, label = "Horsepower", page_wrap = TRUE) %>% 
  define(drat, visible = FALSE) %>% 
  define(wt, label = "Weight") %>% 
  define(qsec, label = "Quarter Mile Time", width = 1.5) 

  
# Create the report
rpt <- create_report(tmp, output_type = "PDF", 
                     font = "Courier", font_size = 12) %>% 
  titles("Listing 2.0", "MTCARS Data Listing with Page Wrap") %>% 
  set_margins(top = 1, bottom = 1) %>% 
  add_content(tbl) %>% 
  page_footer(right = "Page [pg] of [tpg]")

# Write the report
write_report(rpt)

# file.show(tmp)

Next: Example 7: Page By