From ddcae7d00b07f1c5fa6634583a25713c4e77b363 Mon Sep 17 00:00:00 2001 From: nhz2 Date: Fri, 23 Jun 2023 13:00:10 -0400 Subject: [PATCH 1/9] Use ZipArchives --- Project.toml | 3 +- src/PPTX.jl | 3 +- src/Picture.jl | 13 +++- src/write.jl | 156 +++++++++++++++++++------------------------ src/xml_ppt_utils.jl | 19 +----- test/testSlideXML.jl | 14 ++-- test/testTables.jl | 11 +-- test/testWriting.jl | 41 ++++-------- 8 files changed, 110 insertions(+), 150 deletions(-) diff --git a/Project.toml b/Project.toml index 5d4764a..f817a8f 100644 --- a/Project.toml +++ b/Project.toml @@ -9,9 +9,9 @@ DefaultApplication = "3f0dd361-4fe0-5fc6-8523-80b14ec94d85" EzXML = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageIO = "82e4d734-157c-48bb-816b-45c225c6df19" -Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" XMLDict = "228000da-037f-5747-90a9-8195ccbf91a5" +ZipArchives = "49080126-0e18-4c2a-b176-c102e4b3760c" [compat] DataStructures = "0.18" @@ -21,6 +21,7 @@ FileIO = "1" ImageIO = "0.6.1" Tables = "1" XMLDict = "0.4" +ZipArchives = "0.4" julia = "1.6" [extras] diff --git a/src/PPTX.jl b/src/PPTX.jl index c97b8e0..a776186 100644 --- a/src/PPTX.jl +++ b/src/PPTX.jl @@ -3,12 +3,11 @@ module PPTX using XMLDict using EzXML using DataStructures +using ZipArchives import Tables import Tables: columns, columnnames, rows -import Pkg.PlatformEngines: exe7z - export Presentation, Slide, TextBox, Picture, Table include("AbstractShape.jl") diff --git a/src/Picture.jl b/src/Picture.jl index c9a6318..fa648b0 100644 --- a/src/Picture.jl +++ b/src/Picture.jl @@ -109,9 +109,16 @@ function relationship_xml(p::Picture) ) end -function copy_picture(p::Picture) - if !isfile("./media/$(filename(p))") - return cp(p.source, "./media/$(filename(p))") +function copy_picture(w::ZipWriter, p::Picture) + dest_path = "ppt/media/$(filename(p))" + # save any file being written so zip_name_collision is correct. + zip_commitfile(w) + if !zip_name_collision(w, dest_path) + open(p.source) do io + zip_newfile(w, dest_path) + write(w, io) + zip_commitfile(w) + end end end diff --git a/src/write.jl b/src/write.jl index d2c7fdd..30f40f5 100644 --- a/src/write.jl +++ b/src/write.jl @@ -1,40 +1,46 @@ import DefaultApplication -function write_presentation!(p::Presentation) - rm("./presentation.xml") +function write_presentation!(w::ZipWriter, p::Presentation) xml = make_presentation(p) doc = xml_document(xml) - return write("./presentation.xml", doc) + zip_newfile(w, "ppt/presentation.xml"; compress=true) + print(w, doc) + zip_commitfile(w) end -function write_relationships!(p::Presentation) - rm("./_rels/presentation.xml.rels") +function write_relationships!(w::ZipWriter, p::Presentation) xml = make_relationships(p) doc = xml_document(xml) - return write("./_rels/presentation.xml.rels", doc) + zip_newfile(w, "ppt/_rels/presentation.xml.rels"; compress=true) + print(w, doc) + zip_commitfile(w) end -function write_slides!(p::Presentation) - if isdir("slides") +function write_slides!(w::ZipWriter, p::Presentation, template::ZipBufferReader) + if zip_isdir(template, "ppt/slides") error("input template pptx already contains slides, please use an empty template") end - mkdir("slides") - mkdir("slides/_rels") for (idx, slide) in enumerate(slides(p)) xml = make_slide(slide) doc::EzXML.Document = xml_document(xml) - add_title_shape!(doc, slide) - write("./slides/slide$idx.xml", doc) + add_title_shape!(doc, slide, template) + zip_newfile(w, "ppt/slides/slide$idx.xml"; compress=true) + print(w, doc) + zip_commitfile(w) xml = make_slide_relationships(slide) doc = xml_document(xml) - write("./slides/_rels/slide$idx.xml.rels", doc) + zip_newfile(w, "ppt/slides/_rels/slide$idx.xml.rels"; compress=true) + print(w, doc) + zip_commitfile(w) end end -function add_title_shape!(doc::EzXML.Document, slide::Slide, unzipped_ppt_dir::String=".") +function add_title_shape!(doc::EzXML.Document, slide::Slide, template::ZipBufferReader) # xpath to find something with an unregistered namespace spTree = findfirst("//*[local-name()='p:spTree']", root(doc)) - title_shape_node = PPTX.get_title_shape_node(slide, unzipped_ppt_dir) + layout_path = "ppt/slideLayouts/slideLayout$(slide.layout).xml" + layout_doc = EzXML.parsexml(zip_readentry(template, layout_path)) + title_shape_node = PPTX.get_title_shape_node(layout_doc) if !isnothing(title_shape_node) PPTX.update_xml_title!(title_shape_node, slide.title) new_id = maximum(get_shape_ids(doc))+1 @@ -42,30 +48,33 @@ function add_title_shape!(doc::EzXML.Document, slide::Slide, unzipped_ppt_dir::S unlink!(title_shape_node) link!(spTree, title_shape_node) end - return nothing + nothing end -function write_shapes!(pres::Presentation) - if !isdir("media") - mkdir("media") - end +function write_shapes!(w::ZipWriter, pres::Presentation) for slide in slides(pres) for shape in shapes(slide) if shape isa Picture - copy_picture(shape) + copy_picture(w::ZipWriter, shape) end end end end -function update_table_style!(unzipped_ppt_dir::String=".") +function update_table_style!(w::ZipWriter, template::ZipBufferReader) # minimally we want at least one table style - if has_empty_table_list(unzipped_ppt_dir) + table_style_path = "ppt/tableStyles.xml" + table_style_doc = EzXML.parsexml(zip_readentry(template, table_style_path)) + if has_empty_table_list(table_style_doc) table_style_filename = "tableStyles.xml" default_table_style_file = joinpath(TEMPLATE_DIR, table_style_filename) - destination_table_style_file = joinpath(unzipped_ppt_dir, table_style_filename) - cp(default_table_style_file, destination_table_style_file; force=true) + open(default_table_style_file) do io + zip_newfile(w, table_style_path; compress=true) + write(w, io) + zip_commitfile(w) + end end + nothing end """ @@ -107,19 +116,18 @@ function Base.write( p::Presentation; overwrite::Bool=false, open_ppt::Bool=true, - template_path::String=joinpath(TEMPLATE_DIR, "no-slides"), + template_path::String=joinpath(TEMPLATE_DIR, "no-slides.pptx"), ) template_path = abspath(template_path) - template_name = splitpath(template_path)[end] - template_isdir = isdir(template_path) template_isfile = isfile(template_path) - if !template_isdir && !template_isfile + if !template_isfile error( - "No file found at template path: $template_path", + "No file found at template path: $(repr(template_path))", ) end + template_reader = ZipBufferReader(read(template_path)) if !endswith(filepath, ".pptx") filepath *= ".pptx" @@ -128,78 +136,48 @@ function Base.write( filepath = abspath(filepath) filedir, filename = splitdir(filepath) - if !isdir(filedir) - mkdir(filedir) - end + mkpath(filedir) - if isfile(filepath) - if overwrite - rm(filepath) - else - error( - "File \"$filepath\" already exists use \"overwrite = true\" or a different name to proceed", - ) - end + if !overwrite && isfile(filepath) + error( + "File $(repr(filepath)) already exists use \"overwrite = true\" or a different name to proceed", + ) end - mktempdir() do tmpdir - cd(tmpdir) do - cp(template_path, template_name) - unzipped_dir = template_name - if template_isfile - unzip(template_name) - unzipped_dir = first(splitext(template_name)) # remove .pptx - end - ppt_dir = joinpath(unzipped_dir, "ppt") - cd(ppt_dir) do - write_relationships!(p) - write_presentation!(p) - write_slides!(p) - write_shapes!(p) - update_table_style!() + mktemp(filedir) do temp_path, temp_out + ZipWriter(temp_out; own_io=true) do w + write_relationships!(w, p) + write_presentation!(w, p) + write_slides!(w, p, template_reader) + write_shapes!(w, p) + update_table_style!(w, template_reader) + # copy over any files from the template + # but don't overwrite any files in w + for i in zip_nentries(template_reader):-1:1 + local name = zip_name(template_reader, i) + if !endswith(name,"/") + if !zip_name_collision(w, name) + local compress = zip_iscompressed(template_reader, i) + zip_openentry(template_reader, i) do io + zip_newfile(w, name; compress) + write(w, io) + zip_commitfile(w) + end + end + end end - zip(unzipped_dir, filename) - cp(filename, filepath) end + mv(temp_path, filepath; force=overwrite) end + if open_ppt try DefaultApplication.open(filepath) catch err - @warn "Could not open file $filepath" + @warn "Could not open file $(repr(filepath))" bt = backtrace() print(sprint(showerror, err, bt)) end end return nothing end - -# unzips file as folder into current folder -function unzip(path::String) - output = split(path, ".pptx")[begin] - run_silent_pipeline(`$(exe7z()) x $path -o$output`) -end - -# Turns folder into zipped file -function zip(folder::String, filename::String) - zip_ext_filename = split(filename, ".")[begin] * ".zip" - origin = pwd() - cd(folder) do - for f in readdir(".") - run_silent_pipeline(`$(exe7z()) a $zip_ext_filename $f`) - end - mv(zip_ext_filename, joinpath(origin, filename)) - end - return nothing -end - -# silent, unless we error -function run_silent_pipeline(command) - standard_output = Pipe() # capture output, so it doesn't pollute the REPL - try - run(pipeline(command, stdout=standard_output)) - catch e - println(standard_output) - rethrow(e) - end -end diff --git a/src/xml_ppt_utils.jl b/src/xml_ppt_utils.jl index f62d6be..3068eaa 100644 --- a/src/xml_ppt_utils.jl +++ b/src/xml_ppt_utils.jl @@ -22,24 +22,11 @@ function main_attributes()::Vector{OrderedDict} ] end -function get_slide_layout_path(layout::Int, unzipped_ppt_dir::String=".") - filename = "slideLayout$layout.xml" - path = joinpath(unzipped_ppt_dir, "slideLayouts", filename) - return abspath(path) -end - function xpath_to_find_sp_type(type_name::String) return "//p:spTree/p:sp/p:nvSpPr[1]/p:nvPr[1]/p:ph[1][@type=\"$type_name\"][1]/ancestor::p:sp[1]" end -function get_title_shape_node(s::Slide, unzipped_ppt_dir::String=".") - get_title_shape_node(s.layout, unzipped_ppt_dir) -end - -function get_title_shape_node(layout::Int, unzipped_ppt_dir::String=".") - layout_path = get_slide_layout_path(layout, unzipped_ppt_dir) - layout_doc = EzXML.readxml(layout_path) - +function get_title_shape_node(layout_doc::EzXML.Document) # the xpath way to find things # note: on layout2 and forth it's type="title", layout1 uses type="ctrTitle" xpath = xpath_to_find_sp_type("title") @@ -87,9 +74,7 @@ function update_shape_id!(sp_node::EzXML.Node, id::Int) return nothing end -function has_empty_table_list(unzipped_ppt_dir::String=".") - table_style_path = abspath(joinpath(unzipped_ppt_dir, "tableStyles.xml")) - table_style_doc = EzXML.readxml(table_style_path) +function has_empty_table_list(table_style_doc::EzXML.Document) tblStyles = findall("//a:tblStyleLst/a:tblStyle", root(table_style_doc)) return isnothing(tblStyles) || isempty(tblStyles) end \ No newline at end of file diff --git a/test/testSlideXML.jl b/test/testSlideXML.jl index aaf0d4b..c766bee 100644 --- a/test/testSlideXML.jl +++ b/test/testSlideXML.jl @@ -1,6 +1,7 @@ using Test using PPTX using EzXML +using ZipArchives @testset "Slide XML structure" begin s = Slide() @@ -33,12 +34,12 @@ end end @testset "update title in XML" begin - unzipped_ppt_dir = joinpath(PPTX.TEMPLATE_DIR,"no-slides","ppt") + template = ZipBufferReader(read(joinpath(PPTX.TEMPLATE_DIR,"no-slides.pptx"))) @testset "slideLayout1.xml" begin slide = Slide(;layout=1) - - sp_node = PPTX.get_title_shape_node(slide, unzipped_ppt_dir) + layout_path = "ppt/slideLayouts/slideLayout$(slide.layout).xml" + sp_node = PPTX.get_title_shape_node(EzXML.parsexml(zip_readentry(template, layout_path))) # check we can mutate the title t = PPTX.get_title_from_shape_node(sp_node) @@ -58,14 +59,15 @@ end @testset "slideLayout2.xml" begin slide = Slide(;layout=2) - sp_node = PPTX.get_title_shape_node(slide, unzipped_ppt_dir) + layout_path = "ppt/slideLayouts/slideLayout$(slide.layout).xml" + sp_node = PPTX.get_title_shape_node(EzXML.parsexml(zip_readentry(template, layout_path))) @test !isnothing(sp_node) t = PPTX.get_title_from_shape_node(sp_node) @test t.content == "Click to edit Master title style" xml = PPTX.make_slide(slide) doc = PPTX.xml_document(xml) - PPTX.add_title_shape!(doc, slide, unzipped_ppt_dir) + PPTX.add_title_shape!(doc, slide, template) end @testset "test unique shape ids" begin @@ -79,7 +81,7 @@ end ids = PPTX.get_shape_ids(doc) @test ids == [1,2,3] - PPTX.add_title_shape!(doc, slide, unzipped_ppt_dir) + PPTX.add_title_shape!(doc, slide, template) ids = PPTX.get_shape_ids(doc) @test ids == [1,2,3,4] end diff --git a/test/testTables.jl b/test/testTables.jl index 86a68be..ea72816 100644 --- a/test/testTables.jl +++ b/test/testTables.jl @@ -2,6 +2,7 @@ using PPTX using Test using DataFrames using EzXML +using ZipArchives @testset "PPTX Tables from a DataFrame" begin df = DataFrame(a = [1,2], b = [3,4], c = [5,6]) @@ -50,9 +51,11 @@ using EzXML end @testset "check empty table style list" begin - tableStyles_folder = abspath(joinpath(PPTX.TEMPLATE_DIR)) - @test !PPTX.has_empty_table_list(tableStyles_folder) + tableStyles_path = abspath(joinpath(PPTX.TEMPLATE_DIR, "tableStyles.xml")) + table_style_doc = EzXML.parsexml(read(tableStyles_path)) + @test !PPTX.has_empty_table_list(table_style_doc) - tableStyles_folder = abspath(joinpath(PPTX.TEMPLATE_DIR, "no-slides", "ppt")) - @test PPTX.has_empty_table_list(tableStyles_folder) + no_slides_template = ZipBufferReader(read(joinpath(PPTX.TEMPLATE_DIR, "no-slides.pptx"))) + table_style_doc = EzXML.parsexml(zip_readentry(no_slides_template, "ppt/tableStyles.xml")) + @test PPTX.has_empty_table_list(table_style_doc) end \ No newline at end of file diff --git a/test/testWriting.jl b/test/testWriting.jl index 63e9da6..9578795 100644 --- a/test/testWriting.jl +++ b/test/testWriting.jl @@ -21,21 +21,6 @@ function write_and_remove(fname::String, p::Presentation) return true end -@testset "zipping/unzipping" begin - - # simple zip/unzip test - mktempdir() do tmpdir - cd(tmpdir) do - a_folder = abspath(joinpath(PPTX.TEMPLATE_DIR,"no-slides")) - cp(a_folder, abspath(joinpath(".","no-slides"))) - PPTX.zip("no-slides", "zipfile.pptx") - @test isfile("zipfile.pptx") - PPTX.unzip("zipfile.pptx") - @test isdir("zipfile") - end - end -end - @testset "writing" begin @testset "push same picture" begin picture_path = joinpath(PPTX.ASSETS_DIR, "cauliflower.jpg") @@ -60,7 +45,7 @@ end # TODO: also support .potx next to empty .pptx # TODO: what if the .pptx template already has slides? @testset "custom template" begin - dark_template_name = "no-slides-dark" + dark_template_name = "no-slides-dark.pptx" dark_template_path = joinpath(PPTX.TEMPLATE_DIR, dark_template_name) pres = Presentation(;title="My Presentation") s = Slide() @@ -68,7 +53,7 @@ end # error testing wrong_path = abspath(joinpath(".", "wrong_path")) - err_msg = "No file found at template path: $wrong_path" + err_msg = "No file found at template path: $(repr(wrong_path))" @test_throws ErrorException(err_msg) PPTX.write( "anywhere.pptx", pres; @@ -87,15 +72,14 @@ end open_ppt=false, template_path=dark_template_path, ) - PPTX.unzip(output_pptx) - output_unzipped_pptx = abspath(joinpath(tmpdir, filename)) - dir_contents = readdir(output_unzipped_pptx) - theme_file = joinpath(output_unzipped_pptx, "ppt", "theme", "theme1.xml") - @test isfile(theme_file) + output_zip = ZipBufferReader(read(output_pptx)) + dir_contents = zip_names(output_zip) + theme_file = "ppt/theme/theme1.xml" + @test theme_file ∈ dir_contents # file compare is failing on Linux, using string comparisons # the dark theme contains this node, which is named "" in the original theme - str = read(theme_file, String) + str = zip_readentry(output_zip, theme_file, String) @test contains(str, "") end end @@ -103,14 +87,15 @@ end @testset "custom template with media dir" begin # test for issue https://github.com/ASML-Labs/PPTX.jl/issues/20 mktempdir() do tmpdir - template_name = "no-slides" + template_name = "no-slides.pptx" original_template_path = joinpath(PPTX.TEMPLATE_DIR, template_name) edited_template_path = joinpath(tmpdir, template_name) cp(original_template_path, edited_template_path) - - # add an existing media directory - media_dir = joinpath(edited_template_path, "ppt", "media") - mkdir(media_dir) + zip_append_archive(edited_template_path) do w + # add an existing media directory + zip_mkdir(w, "ppt/media") + zip_writefile(w, "ppt/media/foo.png", read(joinpath(PPTX.ASSETS_DIR,"julia_logo.png"))) + end pres = Presentation(;title="My Presentation") s1 = Slide() From 117d443b195a364f549cbdea10878f8f69fb428a Mon Sep 17 00:00:00 2001 From: nhz2 Date: Fri, 23 Jun 2023 13:02:31 -0400 Subject: [PATCH 2/9] delete unzipped templates --- templates/no-slides-dark/[Content_Types].xml | 2 -- templates/no-slides-dark/_rels/.rels | 2 -- templates/no-slides-dark/docProps/app.xml | 2 -- templates/no-slides-dark/docProps/core.xml | 2 -- templates/no-slides-dark/docProps/custom.xml | 2 -- templates/no-slides-dark/docProps/thumbnail.jpeg | Bin 4069 -> 0 bytes .../ppt/_rels/presentation.xml.rels | 2 -- templates/no-slides-dark/ppt/presProps.xml | 2 -- templates/no-slides-dark/ppt/presentation.xml | 2 -- .../ppt/slideLayouts/_rels/slideLayout1.xml.rels | 2 -- .../slideLayouts/_rels/slideLayout10.xml.rels | 2 -- .../slideLayouts/_rels/slideLayout11.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout2.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout3.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout4.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout5.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout6.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout7.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout8.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout9.xml.rels | 2 -- .../ppt/slideLayouts/slideLayout1.xml | 2 -- .../ppt/slideLayouts/slideLayout10.xml | 2 -- .../ppt/slideLayouts/slideLayout11.xml | 2 -- .../ppt/slideLayouts/slideLayout2.xml | 2 -- .../ppt/slideLayouts/slideLayout3.xml | 2 -- .../ppt/slideLayouts/slideLayout4.xml | 2 -- .../ppt/slideLayouts/slideLayout5.xml | 2 -- .../ppt/slideLayouts/slideLayout6.xml | 2 -- .../ppt/slideLayouts/slideLayout7.xml | 2 -- .../ppt/slideLayouts/slideLayout8.xml | 2 -- .../ppt/slideLayouts/slideLayout9.xml | 2 -- .../ppt/slideMasters/_rels/slideMaster1.xml.rels | 2 -- .../ppt/slideMasters/slideMaster1.xml | 2 -- templates/no-slides-dark/ppt/tableStyles.xml | 2 -- templates/no-slides-dark/ppt/tags/tag1.xml | 2 -- templates/no-slides-dark/ppt/theme/theme1.xml | 2 -- templates/no-slides-dark/ppt/viewProps.xml | 2 -- templates/no-slides/[Content_Types].xml | 2 -- templates/no-slides/_rels/.rels | 2 -- templates/no-slides/docProps/app.xml | 2 -- templates/no-slides/docProps/core.xml | 2 -- templates/no-slides/docProps/custom.xml | 2 -- templates/no-slides/docProps/thumbnail.jpeg | Bin 3935 -> 0 bytes .../no-slides/ppt/_rels/presentation.xml.rels | 2 -- templates/no-slides/ppt/presProps.xml | 2 -- templates/no-slides/ppt/presentation.xml | 2 -- .../ppt/slideLayouts/_rels/slideLayout1.xml.rels | 2 -- .../slideLayouts/_rels/slideLayout10.xml.rels | 2 -- .../slideLayouts/_rels/slideLayout11.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout2.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout3.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout4.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout5.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout6.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout7.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout8.xml.rels | 2 -- .../ppt/slideLayouts/_rels/slideLayout9.xml.rels | 2 -- .../no-slides/ppt/slideLayouts/slideLayout1.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout10.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout11.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout2.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout3.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout4.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout5.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout6.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout7.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout8.xml | 2 -- .../no-slides/ppt/slideLayouts/slideLayout9.xml | 2 -- .../ppt/slideMasters/_rels/slideMaster1.xml.rels | 2 -- .../no-slides/ppt/slideMasters/slideMaster1.xml | 2 -- templates/no-slides/ppt/tableStyles.xml | 2 -- templates/no-slides/ppt/tags/tag1.xml | 2 -- templates/no-slides/ppt/theme/theme1.xml | 2 -- templates/no-slides/ppt/viewProps.xml | 2 -- 74 files changed, 144 deletions(-) delete mode 100644 templates/no-slides-dark/[Content_Types].xml delete mode 100644 templates/no-slides-dark/_rels/.rels delete mode 100644 templates/no-slides-dark/docProps/app.xml delete mode 100644 templates/no-slides-dark/docProps/core.xml delete mode 100644 templates/no-slides-dark/docProps/custom.xml delete mode 100644 templates/no-slides-dark/docProps/thumbnail.jpeg delete mode 100644 templates/no-slides-dark/ppt/_rels/presentation.xml.rels delete mode 100644 templates/no-slides-dark/ppt/presProps.xml delete mode 100644 templates/no-slides-dark/ppt/presentation.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout1.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout10.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout11.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout2.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout3.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout4.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout5.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout6.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout7.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout8.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout9.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout1.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout10.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout11.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout2.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout3.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout4.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout5.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout6.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout7.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout8.xml delete mode 100644 templates/no-slides-dark/ppt/slideLayouts/slideLayout9.xml delete mode 100644 templates/no-slides-dark/ppt/slideMasters/_rels/slideMaster1.xml.rels delete mode 100644 templates/no-slides-dark/ppt/slideMasters/slideMaster1.xml delete mode 100644 templates/no-slides-dark/ppt/tableStyles.xml delete mode 100644 templates/no-slides-dark/ppt/tags/tag1.xml delete mode 100644 templates/no-slides-dark/ppt/theme/theme1.xml delete mode 100644 templates/no-slides-dark/ppt/viewProps.xml delete mode 100644 templates/no-slides/[Content_Types].xml delete mode 100644 templates/no-slides/_rels/.rels delete mode 100644 templates/no-slides/docProps/app.xml delete mode 100644 templates/no-slides/docProps/core.xml delete mode 100644 templates/no-slides/docProps/custom.xml delete mode 100644 templates/no-slides/docProps/thumbnail.jpeg delete mode 100644 templates/no-slides/ppt/_rels/presentation.xml.rels delete mode 100644 templates/no-slides/ppt/presProps.xml delete mode 100644 templates/no-slides/ppt/presentation.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout1.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout10.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout11.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout2.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout3.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout4.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout5.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout6.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout7.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout8.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/_rels/slideLayout9.xml.rels delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout1.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout10.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout11.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout2.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout3.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout4.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout5.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout6.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout7.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout8.xml delete mode 100644 templates/no-slides/ppt/slideLayouts/slideLayout9.xml delete mode 100644 templates/no-slides/ppt/slideMasters/_rels/slideMaster1.xml.rels delete mode 100644 templates/no-slides/ppt/slideMasters/slideMaster1.xml delete mode 100644 templates/no-slides/ppt/tableStyles.xml delete mode 100644 templates/no-slides/ppt/tags/tag1.xml delete mode 100644 templates/no-slides/ppt/theme/theme1.xml delete mode 100644 templates/no-slides/ppt/viewProps.xml diff --git a/templates/no-slides-dark/[Content_Types].xml b/templates/no-slides-dark/[Content_Types].xml deleted file mode 100644 index cdffa05..0000000 --- a/templates/no-slides-dark/[Content_Types].xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/_rels/.rels b/templates/no-slides-dark/_rels/.rels deleted file mode 100644 index 0a11df1..0000000 --- a/templates/no-slides-dark/_rels/.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/docProps/app.xml b/templates/no-slides-dark/docProps/app.xml deleted file mode 100644 index 1075cae..0000000 --- a/templates/no-slides-dark/docProps/app.xml +++ /dev/null @@ -1,2 +0,0 @@ - -10Microsoft Office PowerPointWidescreen00000falseFonts Used3Theme1Slide Titles0ArialCalibriCalibri LightOffice Themefalsefalsefalse16.0000 \ No newline at end of file diff --git a/templates/no-slides-dark/docProps/core.xml b/templates/no-slides-dark/docProps/core.xml deleted file mode 100644 index 64726f0..0000000 --- a/templates/no-slides-dark/docProps/core.xml +++ /dev/null @@ -1,2 +0,0 @@ - -PowerPoint PresentationXander de VriesMatthijs Cox42022-03-10T12:54:31Z2022-11-16T08:36:46Z \ No newline at end of file diff --git a/templates/no-slides-dark/docProps/custom.xml b/templates/no-slides-dark/docProps/custom.xml deleted file mode 100644 index c58b0a6..0000000 --- a/templates/no-slides-dark/docProps/custom.xml +++ /dev/null @@ -1,2 +0,0 @@ - -true2022-03-10T12:54:49ZPrivilegedNon-Businessaf73baa8-f594-4eb2-a39d-93e96cad61fc784cf0a6-f669-4551-9956-e007f73cb6390 \ No newline at end of file diff --git a/templates/no-slides-dark/docProps/thumbnail.jpeg b/templates/no-slides-dark/docProps/thumbnail.jpeg deleted file mode 100644 index b262c37912d5f3ffa1b21084dab836ee8a1cdfe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4069 zcmd6mc{tSVzsJ90jBRYg3?@;SP`1brS;B)svSi<~jcsf#LQU4ll58Q0Que(t!!Xp? zm$EO7ta)UKW-Q^M{B+jqI@fisbAHeH=e+OF`>*?R-`D$ff3Evz@@Nj=HqO$8<9&b;2H_Er*J9!|b72;} z0au7j&1VtQe)Aq-K14%ZaJ?DD%ErepfIM+VTtf2fIYqRR@`ZJ2n5!dseXv<}`%s%^@~E zl;Zpu`fs#E-Jtd1|1I%3Asne{qZn*@~4B<4r z#nW@U@U?0<&YCjku)4d;u-N$A=;r#;_n_eE^eumPJ(X2UgGDyRdtcjHA2=cD%5g1X zd*&TMQu;N+GoL^E40fDpuYF%;dzP<+A*LZCSg$7YV7Ls)c{uSbgjtu?ng8<8v~jG? zPjA&xO5cbq*Eh<@ffE_^bMBAs71bf&Pe#Z$MHs%lNvcj(Gp<_yHB9HLEb)u+dq}M= z%z{akSA<_U^+Z()vXa4Ef`C*fqML*a56p<;Xy|?IeRrd#hN@g_gDs~!&qbBMuFM{l z?-EUo zai*gc75v!3`svZMF8>BFtel72#lqPwLj9Z`y*2KcZr#ww)-oaSVJ#VQWOI6V%zKoA zev?m%&GX377k19~tcvF~p#!wM0h^J!sWnFpA-08IUe&LOxW;$m-zpOd2Qs?)#9U1y zs{5Z}r%4sULbSZd0|y*cJvnwfoZX9*S9!vVRR5mzSeIZFRq~6Hf!b1itGHsqt|}wgQ|6mK|G2j=zNpdWQD6Y> zWwEG*_VaEX|LdHpKZ*vsV59#1W>bQSChCL=NZ-?l0T$bA!gh}Y65S9c9Wq^ADQEJi z`Er1am{;Y7X1&Cgh#nPbM*LHY+6b;1S}`gSZjyL^3i{b0BtVb!b`*~;vs<}a|Ep1b z{8bv#u6K1+DNeNgkAQGs-3(wL`co84SAQIg|_s0-ViMzhSVf&76~X>m+TYX?qq60@lp%PFsD81HtKB> z%h>G~ti@AksSL8x*6cH;G=>Tqh zwPrsV89(cMDOl0B`>KLPO31~+M*5w`P%I?3v$n*dQnVWePaC(+SEoQG<3X3<2UB!U6C9(Pvsb-C=wBc2)c%8;pcC)B7+ z_0Ii!*Tw=W15cC4&1v4QZT^DDrx{=KE^S?N!fVs7=7)v{2Q4_dF0Gjo56&!ZUGM#V zi}`RfH4!@!x%vFDB$zt4hwz-gbc%m@Lb=A#Cnq*%*n2k%R-KY5Q@KJICw8}E@q_** zKW|BW`VgpjLPL1(`a5MayJgkwoQ!YE#5??ibZkL#k0hTfzK+GAHkzy7v}<=N_~eUt zd{9M5(cb52hq}uv<0P}#=}&G-1bW9wGgx|t@D;!4=WjRGEbET|0o;tVz3%u9*~rFT z_pCn}+9<(Y+G(krUWb1jxvVY;7EO?R$?)HLdU)r9Y!@YGBRgn*%}>Xo<=&mzaa5i~ zmI=}$`|h=v>b!2y zm)q8ZDTlgy@&!HRCa?Bf|Dr4yi{gw_WMLZuY6N2H`GDDT<==Bg_n*2DB)&*6Wejw3 zfo%>=2M>*l_HH7#4+I@OE+s7itrc34Q6@VB3e^b0~+ z3v)K48$VuMxaZ{-(Rl58x-4bjpVCaZ=% zu{^TpKVf2F!(Iy=vkz`~exdu$C6a?=YKWQWVFVUeZxW{o{uWe3dPBS2n;4eFMO~*Z z$@^GZ>4s39k^7&?S$#LQvMpZ&`!fkU;gCJz{6^wDa(;AMD|q3o#x!?h=D@&1_mqn< zgu2%_=_obCGBVjx@SqeQO4BzcXJMYTS?6R%`(vBxG46pHL+9&LGxcX1ANa`nMLOk+ zg|SKl8vd_H)p6Fp_(x^yJZa=7Pz@i$R3G&5Oi9qQ~ z5yZKvyzi7Mr3J(t$`wrE49b@cN?7{@(OI%XT;k4U4hly=pAHiSNqHl%a#<*2`vvRm zr*%8SML9nO%^E|gf2jyt5}~RTmd%XIOW@5+)TXwZ*BkLf8Vbi#5O#XPIO>D+jb0k@ zW30Fr)>*WhO0T#nxwt={67j%FslEb#mU}fCGrXfCH;Hdjkpnba-`oWtrYL>3Lrj!jw+c`1c_e;$<|t?1(wfzF*RNgKDwQgT*y4c$9pupsS>(79 zW9-T9uHrsNlqQcNG`5~N{7dLlt|2z_(`S-{dYfSkcY%jc`DqV!wkid{(ySx&zVBp6 zm(57kHZ-o>m(pLysVw{0|Vg4z~T=HxRAbx|TJGc6ZHVR#?` zA}BU(;ANd>o>KPti{1X#3#Ssdj{qL60_tRl-Uub!JsBVGyD{sffO5wKKZ?+fQW4|m zYDvI{(Q}sDj8yXuG;81E{;WX>EO6_^ciQb`-Wh_ZDzz+@Y7 z^a{u!!FxSl8-z1Rtw{9bk8jae^;o+5Wn$g?zV~fyaT_`3=`HOjf+$0FGiT`NiG=F$ zjdhX7y5^BC=1kDqyn?){d)x2UZ507CUHCs?-!&&`@ - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/presProps.xml b/templates/no-slides-dark/ppt/presProps.xml deleted file mode 100644 index fc07621..0000000 --- a/templates/no-slides-dark/ppt/presProps.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/presentation.xml b/templates/no-slides-dark/ppt/presentation.xml deleted file mode 100644 index e646a42..0000000 --- a/templates/no-slides-dark/ppt/presentation.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout1.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout1.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout1.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout10.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout10.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout10.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout11.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout11.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout11.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout2.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout2.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout2.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout3.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout3.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout3.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout4.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout4.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout4.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout5.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout5.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout5.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout6.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout6.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout6.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout7.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout7.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout7.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout8.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout8.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout8.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout9.xml.rels b/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout9.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/_rels/slideLayout9.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout1.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout1.xml deleted file mode 100644 index 63089ef..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master subtitle style11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout10.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout10.xml deleted file mode 100644 index f662850..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout10.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout11.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout11.xml deleted file mode 100644 index cdf4e06..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout11.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout2.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout2.xml deleted file mode 100644 index 6b2f611..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout2.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout3.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout3.xml deleted file mode 100644 index de1813b..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout3.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text styles11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout4.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout4.xml deleted file mode 100644 index 6335ccb..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout4.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout5.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout5.xml deleted file mode 100644 index bcbc687..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout5.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text stylesClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout6.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout6.xml deleted file mode 100644 index dff1a3b..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout6.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title style11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout7.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout7.xml deleted file mode 100644 index b9f39d0..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout7.xml +++ /dev/null @@ -1,2 +0,0 @@ - -11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout8.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout8.xml deleted file mode 100644 index b4aa902..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout8.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text styles11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideLayouts/slideLayout9.xml b/templates/no-slides-dark/ppt/slideLayouts/slideLayout9.xml deleted file mode 100644 index 1e4f7a7..0000000 --- a/templates/no-slides-dark/ppt/slideLayouts/slideLayout9.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick icon to add pictureClick to edit Master text styles11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideMasters/_rels/slideMaster1.xml.rels b/templates/no-slides-dark/ppt/slideMasters/_rels/slideMaster1.xml.rels deleted file mode 100644 index 97b27f6..0000000 --- a/templates/no-slides-dark/ppt/slideMasters/_rels/slideMaster1.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/slideMasters/slideMaster1.xml b/templates/no-slides-dark/ppt/slideMasters/slideMaster1.xml deleted file mode 100644 index cf34e21..0000000 --- a/templates/no-slides-dark/ppt/slideMasters/slideMaster1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level11/16/2022‹#› \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/tableStyles.xml b/templates/no-slides-dark/ppt/tableStyles.xml deleted file mode 100644 index 0dd0dff..0000000 --- a/templates/no-slides-dark/ppt/tableStyles.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/tags/tag1.xml b/templates/no-slides-dark/ppt/tags/tag1.xml deleted file mode 100644 index 9b61476..0000000 --- a/templates/no-slides-dark/ppt/tags/tag1.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/theme/theme1.xml b/templates/no-slides-dark/ppt/theme/theme1.xml deleted file mode 100644 index 58e41ee..0000000 --- a/templates/no-slides-dark/ppt/theme/theme1.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides-dark/ppt/viewProps.xml b/templates/no-slides-dark/ppt/viewProps.xml deleted file mode 100644 index 94a31aa..0000000 --- a/templates/no-slides-dark/ppt/viewProps.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/[Content_Types].xml b/templates/no-slides/[Content_Types].xml deleted file mode 100644 index a31fabf..0000000 --- a/templates/no-slides/[Content_Types].xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/_rels/.rels b/templates/no-slides/_rels/.rels deleted file mode 100644 index 0a11df1..0000000 --- a/templates/no-slides/_rels/.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/docProps/app.xml b/templates/no-slides/docProps/app.xml deleted file mode 100644 index 9d00e2d..0000000 --- a/templates/no-slides/docProps/app.xml +++ /dev/null @@ -1,2 +0,0 @@ - -00Microsoft Office PowerPointWidescreen00000falseFonts Used3Theme1Slide Titles0ArialCalibriCalibri LightOffice Themefalsefalsefalse16.0000 \ No newline at end of file diff --git a/templates/no-slides/docProps/core.xml b/templates/no-slides/docProps/core.xml deleted file mode 100644 index 4a7fadc..0000000 --- a/templates/no-slides/docProps/core.xml +++ /dev/null @@ -1,2 +0,0 @@ - -PowerPoint PresentationXander de VriesXander de Vries22022-03-10T12:54:31Z2022-03-10T14:06:05Z \ No newline at end of file diff --git a/templates/no-slides/docProps/custom.xml b/templates/no-slides/docProps/custom.xml deleted file mode 100644 index c58b0a6..0000000 --- a/templates/no-slides/docProps/custom.xml +++ /dev/null @@ -1,2 +0,0 @@ - -true2022-03-10T12:54:49ZPrivilegedNon-Businessaf73baa8-f594-4eb2-a39d-93e96cad61fc784cf0a6-f669-4551-9956-e007f73cb6390 \ No newline at end of file diff --git a/templates/no-slides/docProps/thumbnail.jpeg b/templates/no-slides/docProps/thumbnail.jpeg deleted file mode 100644 index 8037734f711ecd1cf9ef642d2c35c9233f5fba49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 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 diff --git a/templates/no-slides/ppt/_rels/presentation.xml.rels b/templates/no-slides/ppt/_rels/presentation.xml.rels deleted file mode 100644 index f547f80..0000000 --- a/templates/no-slides/ppt/_rels/presentation.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/presProps.xml b/templates/no-slides/ppt/presProps.xml deleted file mode 100644 index fc07621..0000000 --- a/templates/no-slides/ppt/presProps.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/presentation.xml b/templates/no-slides/ppt/presentation.xml deleted file mode 100644 index a200c41..0000000 --- a/templates/no-slides/ppt/presentation.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout1.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout1.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout1.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout10.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout10.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout10.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout11.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout11.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout11.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout2.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout2.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout2.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout3.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout3.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout3.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout4.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout4.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout4.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout5.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout5.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout5.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout6.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout6.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout6.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout7.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout7.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout7.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout8.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout8.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout8.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout9.xml.rels b/templates/no-slides/ppt/slideLayouts/_rels/slideLayout9.xml.rels deleted file mode 100644 index 69d8ac5..0000000 --- a/templates/no-slides/ppt/slideLayouts/_rels/slideLayout9.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout1.xml b/templates/no-slides/ppt/slideLayouts/slideLayout1.xml deleted file mode 100644 index b3e141e..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master subtitle style3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout10.xml b/templates/no-slides/ppt/slideLayouts/slideLayout10.xml deleted file mode 100644 index 3f937e1..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout10.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout11.xml b/templates/no-slides/ppt/slideLayouts/slideLayout11.xml deleted file mode 100644 index edef234..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout11.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout2.xml b/templates/no-slides/ppt/slideLayouts/slideLayout2.xml deleted file mode 100644 index 51c0992..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout2.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout3.xml b/templates/no-slides/ppt/slideLayouts/slideLayout3.xml deleted file mode 100644 index d39a9b4..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout3.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text styles3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout4.xml b/templates/no-slides/ppt/slideLayouts/slideLayout4.xml deleted file mode 100644 index 8e58018..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout4.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout5.xml b/templates/no-slides/ppt/slideLayouts/slideLayout5.xml deleted file mode 100644 index c8d11cc..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout5.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text stylesClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout6.xml b/templates/no-slides/ppt/slideLayouts/slideLayout6.xml deleted file mode 100644 index 3f5770a..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout6.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title style3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout7.xml b/templates/no-slides/ppt/slideLayouts/slideLayout7.xml deleted file mode 100644 index 8fe96e3..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout7.xml +++ /dev/null @@ -1,2 +0,0 @@ - -3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout8.xml b/templates/no-slides/ppt/slideLayouts/slideLayout8.xml deleted file mode 100644 index f29d851..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout8.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth levelClick to edit Master text styles3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideLayouts/slideLayout9.xml b/templates/no-slides/ppt/slideLayouts/slideLayout9.xml deleted file mode 100644 index fbb3aa7..0000000 --- a/templates/no-slides/ppt/slideLayouts/slideLayout9.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text styles3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/slideMasters/_rels/slideMaster1.xml.rels b/templates/no-slides/ppt/slideMasters/_rels/slideMaster1.xml.rels deleted file mode 100644 index 97b27f6..0000000 --- a/templates/no-slides/ppt/slideMasters/_rels/slideMaster1.xml.rels +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/slideMasters/slideMaster1.xml b/templates/no-slides/ppt/slideMasters/slideMaster1.xml deleted file mode 100644 index 4df6496..0000000 --- a/templates/no-slides/ppt/slideMasters/slideMaster1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -Click to edit Master title styleClick to edit Master text stylesSecond levelThird levelFourth levelFifth level3/10/2022‹#› \ No newline at end of file diff --git a/templates/no-slides/ppt/tableStyles.xml b/templates/no-slides/ppt/tableStyles.xml deleted file mode 100644 index 0dd0dff..0000000 --- a/templates/no-slides/ppt/tableStyles.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/tags/tag1.xml b/templates/no-slides/ppt/tags/tag1.xml deleted file mode 100644 index 9b61476..0000000 --- a/templates/no-slides/ppt/tags/tag1.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/theme/theme1.xml b/templates/no-slides/ppt/theme/theme1.xml deleted file mode 100644 index 37b0ef7..0000000 --- a/templates/no-slides/ppt/theme/theme1.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/templates/no-slides/ppt/viewProps.xml b/templates/no-slides/ppt/viewProps.xml deleted file mode 100644 index 5c23648..0000000 --- a/templates/no-slides/ppt/viewProps.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file From 8555a69c5b1e8090d80e49f7addf3d1ac5c4469b Mon Sep 17 00:00:00 2001 From: nhz2 Date: Fri, 23 Jun 2023 15:53:43 -0400 Subject: [PATCH 3/9] use zip_readentry --- src/write.jl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/write.jl b/src/write.jl index 30f40f5..c917d84 100644 --- a/src/write.jl +++ b/src/write.jl @@ -158,11 +158,10 @@ function Base.write( if !endswith(name,"/") if !zip_name_collision(w, name) local compress = zip_iscompressed(template_reader, i) - zip_openentry(template_reader, i) do io - zip_newfile(w, name; compress) - write(w, io) - zip_commitfile(w) - end + zip_data = zip_readentry(template_reader, i) + zip_newfile(w, name; compress) + write(w, zip_data) + zip_commitfile(w) end end end From c39e758fe411b26c50332f4d64e56a6f2e47c9b7 Mon Sep 17 00:00:00 2001 From: nhz2 Date: Fri, 23 Jun 2023 15:54:09 -0400 Subject: [PATCH 4/9] escape path when printing --- src/Picture.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Picture.jl b/src/Picture.jl index fa648b0..57bfa01 100644 --- a/src/Picture.jl +++ b/src/Picture.jl @@ -55,7 +55,7 @@ has_rid(s::Picture) = true function _show_string(p::Picture, compact::Bool) show_string = "Picture" if !compact - show_string *= "\n source is \"$(p.source)\"" + show_string *= "\n source is $(repr(p.source))" show_string *= "\n offset_x is $(p.offset_x) EMUs" show_string *= "\n offset_y is $(p.offset_y) EMUs" show_string *= "\n size_x is $(p.size_x) EMUs" From 4f175f1f238474fb593d6b84177cc1db412ed5cb Mon Sep 17 00:00:00 2001 From: nhz2 Date: Sun, 27 Aug 2023 13:51:44 -0400 Subject: [PATCH 5/9] update PR --- Project.toml | 2 +- src/Presentation.jl | 4 ++-- src/write.jl | 15 ++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Project.toml b/Project.toml index 3c0c1a3..ae451df 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,7 @@ FileIO = "1" ImageIO = "0.6.1" Tables = "1" XMLDict = "0.4" -ZipArchives = "0.4" +ZipArchives = "0.5" julia = "1.6" [extras] diff --git a/src/Presentation.jl b/src/Presentation.jl index 2916a63..6e19030 100644 --- a/src/Presentation.jl +++ b/src/Presentation.jl @@ -176,8 +176,8 @@ function make_presentation(p::Presentation) return xml_pres end -function update_presentation_state!(p::Presentation, ppt_dir=".") - doc = readxml(joinpath(ppt_dir, "presentation.xml")) +function update_presentation_state!(p::Presentation, template::ZipBufferReader) + doc = EzXML.parsexml(zip_readentry(template, "ppt/presentation.xml")) r = root(doc) n = findfirst("//p:sldSz", r) cx, cy = n["cx"], n["cy"] diff --git a/src/write.jl b/src/write.jl index 8bfad49..c149b3c 100644 --- a/src/write.jl +++ b/src/write.jl @@ -77,9 +77,9 @@ function update_table_style!(w::ZipWriter, template::ZipBufferReader) nothing end -function add_contenttypes!() - path = joinpath("..", "[Content_Types].xml") - doc = readxml(path) +function add_contenttypes!(w::ZipWriter, template::ZipBufferReader) + path = "[Content_Types].xml" + doc = EzXML.parsexml(zip_readentry(template, path)) r = root(doc) extension_contenttypes = ( ("emf", "image/x-emf"), @@ -97,10 +97,9 @@ function add_contenttypes!() isnothing(findfirst(x -> (x.name == "Default" && x["Extension"] == ext), elements(r))) || continue addelement!(r, "Default Extension=\"$ext\" ContentType=\"$ct\"") end - chmod(path, 0o644) - open(path, "w") do io - prettyprint(io, doc) - end + zip_newfile(w, path; compress=true) + prettyprint(w, doc) + zip_commitfile(w) end """ @@ -172,11 +171,13 @@ function Base.write( mktemp(filedir) do temp_path, temp_out ZipWriter(temp_out; own_io=true) do w + update_presentation_state!(p, template_reader) write_relationships!(w, p) write_presentation!(w, p) write_slides!(w, p, template_reader) write_shapes!(w, p) update_table_style!(w, template_reader) + add_contenttypes!(w, template_reader) # copy over any files from the template # but don't overwrite any files in w for i in zip_nentries(template_reader):-1:1 From 3d31a330e34293ee2bda5cc954e0a77168bd3f1a Mon Sep 17 00:00:00 2001 From: nhz2 Date: Mon, 4 Sep 2023 12:29:28 -0400 Subject: [PATCH 6/9] update ZipArchives version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index ae451df..b173d32 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,7 @@ FileIO = "1" ImageIO = "0.6.1" Tables = "1" XMLDict = "0.4" -ZipArchives = "0.5" +ZipArchives = "1" julia = "1.6" [extras] From 8e5b08eec2fdfccc5e5773deda48da0bd8947634 Mon Sep 17 00:00:00 2001 From: nhz2 Date: Tue, 10 Oct 2023 18:27:52 -0400 Subject: [PATCH 7/9] remove blind "using ZipArchives" --- src/PPTX.jl | 4 +++- test/testSlideXML.jl | 2 +- test/testTables.jl | 2 +- test/testWriting.jl | 6 ++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/PPTX.jl b/src/PPTX.jl index a776186..2db23e6 100644 --- a/src/PPTX.jl +++ b/src/PPTX.jl @@ -3,7 +3,9 @@ module PPTX using XMLDict using EzXML using DataStructures -using ZipArchives +using ZipArchives: + ZipBufferReader, ZipWriter, zip_commitfile, zip_newfile, zip_nentries, + zip_name, zip_name_collision, zip_isdir, zip_readentry, zip_iscompressed import Tables import Tables: columns, columnnames, rows diff --git a/test/testSlideXML.jl b/test/testSlideXML.jl index c766bee..35ab19c 100644 --- a/test/testSlideXML.jl +++ b/test/testSlideXML.jl @@ -1,7 +1,7 @@ using Test using PPTX using EzXML -using ZipArchives +using ZipArchives: ZipBufferReader, zip_readentry @testset "Slide XML structure" begin s = Slide() diff --git a/test/testTables.jl b/test/testTables.jl index ea72816..9e0e7e8 100644 --- a/test/testTables.jl +++ b/test/testTables.jl @@ -2,7 +2,7 @@ using PPTX using Test using DataFrames using EzXML -using ZipArchives +using ZipArchives: ZipBufferReader, zip_readentry @testset "PPTX Tables from a DataFrame" begin df = DataFrame(a = [1,2], b = [3,4], c = [5,6]) diff --git a/test/testWriting.jl b/test/testWriting.jl index 9578795..dc559e0 100644 --- a/test/testWriting.jl +++ b/test/testWriting.jl @@ -1,3 +1,5 @@ +using ZipArchives: + ZipBufferReader, zip_readentry, zip_names, zip_append_archive, zip_newfile function bincompare(path::String, ref::String) bin1 = read(path) @@ -93,8 +95,8 @@ end cp(original_template_path, edited_template_path) zip_append_archive(edited_template_path) do w # add an existing media directory - zip_mkdir(w, "ppt/media") - zip_writefile(w, "ppt/media/foo.png", read(joinpath(PPTX.ASSETS_DIR,"julia_logo.png"))) + zip_newfile(w, "ppt/media/foo.png") + write(w, read(joinpath(PPTX.ASSETS_DIR,"julia_logo.png"))) end pres = Presentation(;title="My Presentation") From 2d5e12a4f38033aefb82dcf1c5cb6e0eb7b6d63a Mon Sep 17 00:00:00 2001 From: Nathan Zimmerberg <39104088+nhz2@users.noreply.github.com> Date: Mon, 1 Apr 2024 18:10:52 -0400 Subject: [PATCH 8/9] Update ZipArchives to 2 I removed some functions from ZipArchives.jl in JuliaIO/ZipArchives.jl#43 that are not needed by PPTX.jl to reduce the complexity. No changes to PPTX.jl should be needed. --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index b173d32..5c0e376 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,7 @@ FileIO = "1" ImageIO = "0.6.1" Tables = "1" XMLDict = "0.4" -ZipArchives = "1" +ZipArchives = "2" julia = "1.6" [extras] From 2a195f3c4eb3a80c2660809b9c70692b75e52322 Mon Sep 17 00:00:00 2001 From: nhz2 Date: Sat, 27 Apr 2024 22:27:10 -0400 Subject: [PATCH 9/9] bump version and fix doc tests --- Project.toml | 2 +- src/Tables.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 5c0e376..223fe1c 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "PPTX" uuid = "14a86994-10a4-4a7d-b9ad-ef6f3b1fac6a" authors = ["Xander de Vries", "Matthijs Cox"] -version = "0.6.7" +version = "0.7.0" [deps] DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" diff --git a/src/Tables.jl b/src/Tables.jl index 05ac0a2..23cb3cf 100644 --- a/src/Tables.jl +++ b/src/Tables.jl @@ -29,7 +29,7 @@ julia> df = DataFrame(a = [1,2], b = [3,4], c = [5,6]) julia> t = Table(content=df, size_x=30) Table - content isa DataFrame + content isa DataFrames.DataFrame offset_x is 1800000 EMUs offset_y is 1800000 EMUs size_x is 1080000 EMUs