test_that("add notesMaster", {
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
add_notesMaster(doc)
doc$content_type$save()
content_type <- read_xml(file.path(doc$package_dir, "[Content_Types].xml"))
nodeset <- xml_find_all(content_type, "//d1:Override")
ct_df <- data.frame(
PartName = xml_attr(nodeset, "PartName"),
ContentType = xml_attr(nodeset, "ContentType")
)
notesMasterFile <- ct_df$PartName[
ct_df$ContentType ==
"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"
]
expect_length(notesMasterFile, 1)
expect_true(file.exists(file.path(doc$package_dir, notesMasterFile)))
expect_equal(basename(notesMasterFile), names(doc$notesMaster$names()))
nslideMaster <- doc$notesMaster$collection_get(basename(notesMasterFile))
rels <- nslideMaster$rel_df()
theme_file <- rels$target[
rels$type ==
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
]
expect_length(theme_file, 1)
expect_true(file.exists(file.path(
doc$package_dir,
dirname(notesMasterFile),
theme_file
)))
expect_true(any(grepl(
basename(theme_file),
ct_df$PartName[
ct_df$ContentType ==
"application/vnd.openxmlformats-officedocument.theme+xml"
]
)))
xml <- doc$presentation$get()
node <- xml_find_all(xml, "//p:notesMasterIdLst/p:notesMasterId")
expect_length(node, 1)
rid <- xml_attr(node, "id")
pr_rel <- doc$presentation$rel_df()
pr_rel <- pr_rel[pr_rel$id == rid, ]
expect_equal(
pr_rel$type,
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
)
expect_equal(file.path("/ppt", pr_rel$target), notesMasterFile)
})
test_that("add notesSlide", {
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
get_or_create_notesSlide(doc)
doc$content_type$save()
content_type <- read_xml(file.path(doc$package_dir, "[Content_Types].xml"))
nodeset <- xml_find_all(content_type, "//d1:Override")
ct_df <- data.frame(
PartName = xml_attr(nodeset, "PartName"),
ContentType = xml_attr(nodeset, "ContentType")
)
notesSlideFile <- ct_df$PartName[
ct_df$ContentType ==
"application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"
]
expect_length(notesSlideFile, 1)
expect_true(file.exists(file.path(doc$package_dir, notesSlideFile)))
current_slide <- doc$slide$get_slide(doc$cursor)
rel_df <- current_slide$rel_df()
notes_ref <- rel_df$target[
rel_df$type ==
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
]
expect_length(notes_ref, 1)
expect_equal(basename(notes_ref), basename(notesSlideFile))
idx <- doc$notesSlide$slide_index(basename(notesSlideFile))
nslide <- doc$notesSlide$get_slide(idx)
rel_df <- nslide$rel_df()
master_rel <- rel_df$target[
rel_df$type ==
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
]
expect_equal(basename(master_rel), names(doc$notesMaster$names()))
slide_rel <- rel_df$target[
rel_df$type ==
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
]
expect_equal(basename(slide_rel), current_slide$name())
})
test_that("add notes to notesSlide", {
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
doc <- set_notes(
doc,
"I am a test!",
notes_location_label("Notes Placeholder 4")
)
nslide <- doc$notesSlide$get_slide(1)
xml <- nslide$get()
xpath_ <- "//p:sp[p:nvSpPr/p:cNvPr/@name='Notes Placeholder 4']"
node_ <- xml_find_all(xml, xpath_)
expect_false(inherits(node_, "xml_missing"))
expect_equal(xml_text(node_), "I am a test!")
})
test_that("add notes to notesSlide", {
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
doc <- set_notes(doc, "I am a test!", notes_location_type("body"))
nslide <- doc$notesSlide$get_slide(1)
xml <- nslide$get()
xpath_ <- "//p:sp[p:nvSpPr/p:nvPr/p:ph/@type='body']"
node_ <- xml_find_all(xml, xpath_)
expect_false(inherits(node_, "xml_missing"))
expect_equal(xml_text(node_), "I am a test!")
})
test_that("add block_list to notesSlide", {
value <- block_list(
fpar(ftext("hello world")),
fpar(
ftext("hello"),
" ",
ftext("world")
),
fpar(
ftext("blah blah blah")
)
)
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
doc <- set_notes(doc, value, notes_location_type("body"))
nslide <- doc$notesSlide$get_slide(1)
xml <- nslide$get()
xpath_ <- "//p:sp[p:nvSpPr/p:nvPr/p:ph/@type='body']/p:txBody/a:p"
nodes <- xml_find_all(xml, xpath_)
expect_true(length(nodes) > 0)
expect_equal(
xml_text(nodes),
c("hello world", "hello world", "blah blah blah")
)
})
test_that("replace notes on notesSlide", {
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
doc <- set_notes(doc, "I am a test!", notes_location_type("body"))
doc <- set_notes(doc, "I am a new test!", notes_location_type("body"))
nslide <- doc$notesSlide$get_slide(1)
xml <- nslide$get()
xpath_ <- "//p:sp[p:nvSpPr/p:nvPr/p:ph/@type='body']"
node_ <- xml_find_all(xml, xpath_)
expect_false(inherits(node_, "xml_missing"))
expect_equal(xml_text(node_), "I am a new test!")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.