From dd4e7b5a2cd6cba920ff9427dbaa0f9e7047816d Mon Sep 17 00:00:00 2001 From: superxin Date: Wed, 24 Jun 2020 08:32:35 +0800 Subject: [PATCH] pptx: add support for MS PowerPoint files (#71) --- docx_test/testdata/sample_3.docx | Bin 0 -> 11574 bytes pptx.go | 67 +++++++++++++++++++++++++++++++ pptx_test/pptx_test.go | 29 +++++++++++++ pptx_test/testdata/sample.pptx | Bin 0 -> 40029 bytes 4 files changed, 96 insertions(+) create mode 100644 docx_test/testdata/sample_3.docx create mode 100644 pptx.go create mode 100644 pptx_test/pptx_test.go create mode 100644 pptx_test/testdata/sample.pptx diff --git a/docx_test/testdata/sample_3.docx b/docx_test/testdata/sample_3.docx new file mode 100644 index 0000000000000000000000000000000000000000..c01b78a58e7cf2c761a0342245b355a65ccea539 GIT binary patch literal 11574 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 V6o?)_Q!n8G-5|+AhvsMLe*npSkWl~t literal 0 HcmV?d00001 diff --git a/pptx.go b/pptx.go new file mode 100644 index 0000000..a0cb839 --- /dev/null +++ b/pptx.go @@ -0,0 +1,67 @@ +package docconv + +import ( + "archive/zip" + "bytes" + "fmt" + "io" + "io/ioutil" + "os" + "strings" +) + +// ConvertPptx converts an MS PowerPoint pptx file to text. +func ConvertPptx(r io.Reader) (string, map[string]string, error) { + var size int64 + + // Common case: if the reader is a file (or trivial wrapper), avoid + // loading it all into memory. + var ra io.ReaderAt + if f, ok := r.(interface { + io.ReaderAt + Stat() (os.FileInfo, error) + }); ok { + si, err := f.Stat() + if err != nil { + return "", nil, err + } + size = si.Size() + ra = f + } else { + b, err := ioutil.ReadAll(r) + if err != nil { + return "", nil, nil + } + size = int64(len(b)) + ra = bytes.NewReader(b) + } + + zr, err := zip.NewReader(ra, size) + if err != nil { + return "", nil, fmt.Errorf("could not unzip: %v", err) + } + + zipFiles := mapZipFiles(zr.File) + + contentTypeDefinition, err := getContentTypeDefinition(zipFiles["[Content_Types].xml"]) + if err != nil { + return "", nil, err + } + + meta := make(map[string]string) + var textBody string + for _, override := range contentTypeDefinition.Overrides { + f := zipFiles[override.PartName] + + switch override.ContentType { + case "application/vnd.openxmlformats-officedocument.presentationml.slide+xml", + "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml": + body, err := parseDocxText(f) + if err != nil { + return "", nil, fmt.Errorf("could not parse pptx: %v", err) + } + textBody += body + "\n" + } + } + return strings.TrimSuffix(textBody, "\n"), meta, nil +} diff --git a/pptx_test/pptx_test.go b/pptx_test/pptx_test.go new file mode 100644 index 0000000..b936e3f --- /dev/null +++ b/pptx_test/pptx_test.go @@ -0,0 +1,29 @@ +package docx_test + +import ( + "os" + "strings" + "testing" + + "code.sajari.com/docconv" +) + +func TestConvertPptx(t *testing.T) { + f, err := os.Open("./testdata/sample.pptx") + defer f.Close() + + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + + resp, _, err := docconv.ConvertPptx(f) + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + if want := "Get text from pptx"; !strings.Contains(resp, want) { + t.Errorf("expected %v to contain %v", resp, want) + } + if want := "First"; !strings.Contains(resp, want) { + t.Errorf("expected %v to contain %v", resp, want) + } +} diff --git a/pptx_test/testdata/sample.pptx b/pptx_test/testdata/sample.pptx new file mode 100644 index 0000000000000000000000000000000000000000..e90b71c6300a707de0d4214468451568970ac17e GIT binary patch literal 40029 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 Vz-iu}g77o|USQNy=*XXE{|~gSU(^5q literal 0 HcmV?d00001