img.file <- file.path(R.home("doc"), "html", "logo.jpg") fpt_blue_bold <- fp_text(color = "#006699", bold = TRUE) fpt_red_italic <- fp_text(color = "#C32900", italic = TRUE) bl <- block_list( fpar(ftext("hello world", fpt_blue_bold)), fpar( ftext("hello", fpt_blue_bold), " ", ftext("world", fpt_red_italic) ), fpar( ftext("hello world", fpt_red_italic), external_img( src = img.file, height = 1.06, width = 1.39 ) ) ) anyplot <- plot_instr(code = { col <- c( "#440154FF", "#443A83FF", "#31688EFF", "#21908CFF", "#35B779FF", "#8FD744FF", "#FDE725FF" ) barplot(1:7, col = col, yaxt = "n") }) test_that("rtf_add works with text, paragraphs, and plots (ggplot2 too)", { def_text <- fp_text_lite(color = "#006943", bold = TRUE) center_par <- fp_par(text.align = "left", padding = 1, line_spacing = 1.3) np <- fp_par(line_spacing = 1.4, padding = 3, ) fpt_def <- fp_text(font.size = 11, italic = TRUE, bold = TRUE, underline = TRUE) doc <- rtf_doc(normal_par = np, normal_chunk = fpt_def) expect_identical(doc$normal_par, np) expect_identical(doc$normal_chunk, fpt_def) expect_identical(doc$content, list()) doc <- rtf_add( x = doc, value = fpar( ftext("how are you?", prop = def_text), fp_p = fp_par(text.align = "center") ) ) expect_identical(doc$content[[1]]$chunks[[1]], ftext("how are you?", prop = def_text)) expect_identical(doc$content[[1]]$fp_p, fp_par(text.align = "center")) a_paragraph <- fpar( ftext("Here is a date: ", prop = def_text), run_word_field(field = "Date \\@ \"MMMM d yyyy\""), fp_p = center_par ) doc <- rtf_add( x = doc, value = block_list( a_paragraph, a_paragraph, a_paragraph ) ) expect_identical(doc$content[[4]]$chunks, a_paragraph$chunks) if (require("ggplot2")) { gg <- gg_plot <- ggplot(data = iris) + geom_point(mapping = aes(Sepal.Length, Petal.Length)) doc <- rtf_add(doc, gg, width = 3, height = 4, ppr = center_par ) expect_true(grepl("\\.png", doc$content[[5]]$chunks[[1]])) expect_identical(attr(doc$content[[5]]$chunks[[1]], "dims"), list(width = 3, height = 4)) } anyplot <- plot_instr(code = { barplot(1:5, col = 2:6) }) doc <- rtf_add(doc, anyplot, width = 5, height = 4, ppr = center_par ) expect_true(grepl("\\.png", doc$content[[6]]$chunks[[1]])) expect_identical(attr(doc$content[[6]]$chunks[[1]], "dims"), list(width = 5, height = 4)) expect_s3_class(doc, "rtf") expect_identical(capture.output(print.rtf(doc)), "rtf document with 6 element(s)") bl <- block_list( fpar(ftext("hello world\\t", fpt_blue_bold)), fpar( ftext("hello", fpt_blue_bold), " ", ftext("world", fpt_red_italic) ), fpar( ftext("hello world", fpt_red_italic) ) ) expect_silent({doc <- rtf_add(doc, bl)}) ps <- prop_section( page_size = page_size(orient = "landscape"), page_margins = page_mar(top = 2), type = "continuous" ) bs <- block_section(ps) expect_silent({doc <- rtf_add(doc, bs)}) expect_silent({doc <- rtf_add(doc, "a character")}) expect_silent({doc <- rtf_add(doc, factor("a factor"))}) expect_silent({doc <- rtf_add(doc, 1.1)}) outfile <- print(doc, target = tempfile(fileext = ".rtf")) expect_true(file.exists(outfile)) })