使用 Rmarkdown 的 flextable table 中的 MS Word 页数
MS Word number of pages in a flextable table using Rmarkdown
有没有办法将 MS Word 计算字段 - 文档中的总页数 - 插入 flextable table?
在 officer
包中有一个函数 run_word_field
。我尝试按以下方式使用它:
flextable(df) %>%
compose(value = as_paragraph(
as_chunk(run_word_field(field = "NumPages \* MERGEFORMAT"))
))
但它会引发错误。
有解决办法吗?
您现在可以使用函数 as_word_field
:
library(flextable)
library(officer)
# define some default values ----
set_flextable_defaults(font.size = 22, border.color = "gray")
ft_2 <- flextable(head(cars))
ft_2 <- add_footer_lines(ft_2, "temp text")
ft_2 <- compose(
x = ft_2, part = "footer", i = 1, j = 1,
as_paragraph("p. ",
as_word_field(x = "Page"),
" on ", as_word_field(x = "NumPages"))
)
ft_2 <- autofit(ft_2, part = c("header", "body"))
doc <- read_docx()
doc <- body_add_flextable(doc, ft_2)
doc <- body_add_break(doc)
doc <- body_add_flextable(doc, ft_2)
outfile <- print(doc, target = tempfile(fileext = ".docx"))
有没有办法将 MS Word 计算字段 - 文档中的总页数 - 插入 flextable table?
在 officer
包中有一个函数 run_word_field
。我尝试按以下方式使用它:
flextable(df) %>%
compose(value = as_paragraph(
as_chunk(run_word_field(field = "NumPages \* MERGEFORMAT"))
))
但它会引发错误。
有解决办法吗?
您现在可以使用函数 as_word_field
:
library(flextable)
library(officer)
# define some default values ----
set_flextable_defaults(font.size = 22, border.color = "gray")
ft_2 <- flextable(head(cars))
ft_2 <- add_footer_lines(ft_2, "temp text")
ft_2 <- compose(
x = ft_2, part = "footer", i = 1, j = 1,
as_paragraph("p. ",
as_word_field(x = "Page"),
" on ", as_word_field(x = "NumPages"))
)
ft_2 <- autofit(ft_2, part = c("header", "body"))
doc <- read_docx()
doc <- body_add_flextable(doc, ft_2)
doc <- body_add_break(doc)
doc <- body_add_flextable(doc, ft_2)
outfile <- print(doc, target = tempfile(fileext = ".docx"))