【发布时间】:2020-01-01 10:24:24
【问题描述】:
我想创建一个 Word 文件,左边有一个文本段落,一个 右侧的传单地图的图像。
到目前为止我可以做到,但我还想在整个传单图像周围做一个边框。
我的示例中的边框只有图像大小的一半,因此看起来只有左侧有边框。
如何让边框和图片一样大?
library(shiny)
library(officer)
library(leaflet)
library(mapview)
ui <- fluidPage(
leafletOutput("leafletmap"),
downloadLink("downloadWord", "Download Word Docx")
)
getLeafletMap <- function() {
leaflet() %>%
addTiles() %>%
addPopups(-93.65, 42.0285, "Here is the <b>Department of Statistics</b>, ISU")
}
server <- function(input, output, session) {
output$leafletmap <- renderLeaflet({
getLeafletMap()
})
output$downloadWord <- downloadHandler(
filename = 'Report.docx',
content = function(file) {
## Map #########################
map <- getLeafletMap()
mapshot(x = map, file=paste0(getwd(), "/map.png"),
remove_controls = c("layersControl"))
## Title & Texts #########################
subtitle <- "Report Map"
str5 <- "Lorem ipsum dolor sit amet, ligula iaculis mollis lacus consectetur, urna vitae potenti tortor!
Sit commodo, venenatis leo at et. Ligula ac pulvinar sollicitudin gravida, lobortis lectus ligula et.
Nisl tristique est erat lectus. Sodales egestas amet ac, ultricies nulla eu, risus blandit."
## Styles #########################
text_style_title <- fp_text(font.size = 20, bold = FALSE, font.family = "Arial", color = "#808080")
text_style <- fp_text(font.size = 10, bold = FALSE, font.family = "Arial")
par_style <- fp_par(text.align = "justify")
## Make Word Docs #########################
doc <- read_docx() %>%
body_add_fpar(fpar(ftext("Report with Map", prop = text_style_title), fp_p = par_style)) %>%
body_add_par("", style = "Normal") %>% # blank paragraph
body_end_section_continuous() %>%
body_add_fpar(fpar(ftext(str5, prop = text_style), fp_p = par_style)) %>%
body_add_fpar(fpar(external_img(src = paste0(getwd(), "/map.png"), height = 3, width = 4.52),
fp_p = fp_par(text.align = "right", padding.top = 6,
border = fp_border(width = 1, color = "red")))) %>%
body_end_section_columns(widths = c(1.5,2), sep = FALSE, space = 0.2) %>%
print(doc, target = file)
}
)
}
shinyApp(ui, server)
【问题讨论】:
-
它是否适用于其他图像?
-
据我所知,它没有。
-
我个人在专栏方面遇到过很多问题。一种解决方法可能是使用具有 2 列的 flextable。
-
我也想过,那我怎么只给右栏边框上色呢?