Nothing
test_that("replace bkm with text in body", {
doc <- read_docx()
fp <- fpar(
run_bookmark(
ftext(
"centered text"),
bkm = "text_to_replace"
),
ftext(
text = ". How are you",
prop = fp_text(
color = NA, font.size = NA, bold = TRUE, italic = NA,
underlined = NA, font.family = NA_character_,
cs.family = NA_character_, eastasia.family = NA_character_,
hansi.family = NA_character_, shading.color = NA_character_)
)
)
doc <- body_add_fpar(doc, value = fp, style = "centered")
xmldoc <- doc$doc_obj$get()
xpath_ <- sprintf("//w:bookmarkStart[@w:name='%s']", "text_to_replace")
bm_start <- xml_find_first(xmldoc, xpath_)
expect_false( inherits(bm_start, "xml_missing"))
doc <- body_replace_text_at_bkm(doc, "text_to_replace", "not left aligned")
xmldoc <- doc$doc_obj$get()
newtext <- xml_find_first(xmldoc, "w:body/w:p[1]/w:r")
expect_equal(xml_text(newtext), "not left aligned")
lasttext <- xml_find_first(xmldoc, "w:body/w:p[1]/w:r[2]")
expect_equal(xml_text(lasttext), ". How are you")
})
test_that("replace bkm with images in header/footer", {
template <- system.file(package = "officer", "doc_examples/example.docx")
img.file <- file.path( R.home("doc"), "html", "logo.jpg" )
doc <- read_docx(path = template)
doc <- headers_replace_img_at_bkm(x = doc, bookmark = "bmk_header",
value = external_img(src = img.file, width = .53, height = .7))
doc <- footers_replace_img_at_bkm(x = doc, bookmark = "bmk_footer",
value = external_img(src = img.file, width = .53, height = .7))
print(doc, target = "test_replace_img.docx")
doc <- read_docx(path = "test_replace_img.docx")
xmldoc <- doc$headers[[1]]$get()
xpath_ <- sprintf("//w:bookmarkStart[@w:name='%s']", "bmk_header")
bm_start <- xml_find_first(xmldoc, xpath_)
expect_false( inherits(bm_start, "xml_missing"))
blip <- xml_find_first(xmldoc, "//w:p/w:r/w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic/pic:blipFill/a:blip")
expect_equal( xml_attr(blip, "embed"), "rId1")
xmldoc <- doc$footers[[1]]$get()
xpath_ <- sprintf("//w:bookmarkStart[@w:name='%s']", "bmk_footer")
bm_start <- xml_find_first(xmldoc, xpath_)
expect_false( inherits(bm_start, "xml_missing"))
blip <- xml_find_first(xmldoc, "//w:p/w:r/w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic/pic:blipFill/a:blip")
expect_equal( xml_attr(blip, "embed"), "rId1")
})
test_that("replace bkm in headers and footers", {
doc <- read_docx(path = "docs_dir/table-complex.docx" )
doc <- headers_replace_text_at_bkm(doc, "hello1", "salut")
doc <- footers_replace_text_at_bkm(doc, "hello2", "salut")
xmldoc <- doc$headers[[1]]$get()
xpath_ <- sprintf("//w:bookmarkStart[@w:name='%s']", "hello1")
bm_start <- xml_find_first(xmldoc, xpath_)
expect_false( inherits(bm_start, "xml_missing"))
newtext <- xml_find_first(xmldoc, "/w:hdr/w:p[1]/w:r")
expect_equal(xml_text(newtext), "salut")
xmldoc <- doc$footers[[1]]$get()
xpath_ <- sprintf("//w:bookmarkStart[@w:name='%s']", "hello2")
bm_start <- xml_find_first(xmldoc, xpath_)
expect_false( inherits(bm_start, "xml_missing"))
newtext <- xml_find_first(xmldoc, "/w:ftr/w:p[1]/w:r[3]")
expect_equal(xml_text(newtext), "salut")
})
test_that("docx replace text", {
doc <- read_docx()
doc <- body_add_par(doc, "Placeholder one")
doc <- body_add_par(doc, "Placeholder two")
doc <- body_replace_all_text(doc, old_value = "placeholder", new_value = "new",
only_at_cursor = FALSE, ignore.case = TRUE)
xmldoc <- doc$doc_obj$get()
expect_equal(xml_text( xml_find_all(xmldoc, "//w:p") ), c("new one", "new two") )
})
test_that("docx replace all text", {
doc <- read_docx(path = "docs_dir/table-complex.docx" )
doc <- headers_replace_all_text(doc, old_value = "hello", new_value = "salut",
only_at_cursor = FALSE, ignore.case = TRUE)
doc <- footers_replace_all_text(doc, old_value = "hello", new_value = "salut",
only_at_cursor = FALSE, ignore.case = TRUE)
xmldoc <- doc$headers[[1]]$get()
expect_equal(xml_text( xml_find_all(xmldoc, "//w:p") ), "salut world" )
xmldoc <- doc$footers[[1]]$get()
expect_equal(xml_text( xml_find_all(xmldoc, "//w:p") ), "world salut" )
})
unlink("*.docx", force = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.