From a9a0feb463ccf79ed68fd494089f1182a1ac16c6 Mon Sep 17 00:00:00 2001 From: Jinxin Chen Date: Fri, 26 Jun 2020 22:42:49 +0800 Subject: [PATCH 1/2] add char limit --- config.go | 33 +++++++++++++++++ docconv_test.go | 75 ++++++++++++++++++++++++++++++++++++++ pdf_test/testdata/pdf.pdf | Bin 0 -> 77485 bytes pdf_text.go | 14 ++++++- xml.go | 4 ++ 5 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 config.go create mode 100644 pdf_test/testdata/pdf.pdf diff --git a/config.go b/config.go new file mode 100644 index 0000000..7323f29 --- /dev/null +++ b/config.go @@ -0,0 +1,33 @@ +package docconv + +// Config settings for doc conv +type Config struct { + Limitation LenthLimitation +} + +// LenthLimitation page or word limit +type LenthLimitation struct { + // XMLMaxWord max word limit for xml parsing, this will effort office 2007 zip format document + XMLMaxWord int + // PdfFirstPage first page to convert for pdf + PdfFirstPage int + // PdfLastPage last page to convert for pdf + PdfLastPage int +} + +var ( + config Config +) + +// SetConfig set configuration for docconv +func SetConfig(c Config) { + config = c +} + +func checkXMLMaxWord() bool { + return config.Limitation.XMLMaxWord > 0 +} + +func xmlMaxWordExceed(length int) bool { + return length > config.Limitation.XMLMaxWord +} diff --git a/docconv_test.go b/docconv_test.go index 39eaac0..2d5d94a 100644 --- a/docconv_test.go +++ b/docconv_test.go @@ -1,6 +1,7 @@ package docconv import ( + "os" "strings" "testing" ) @@ -18,3 +19,77 @@ func TestConvertTrimsSpace(t *testing.T) { t.Errorf("body = %v, want %v", resp.Body, want) } } + +func TestXMLMaxWord(t *testing.T) { + t.Run("max word not set", func(t *testing.T) { + checkMaxWord := checkXMLMaxWord() + if checkMaxWord != false { + t.Fatalf("got %v, want false", checkMaxWord) + } + }) + t.Run("test checkMaxWord", func(t *testing.T) { + SetConfig(Config{Limitation: LenthLimitation{XMLMaxWord: 10}}) + checkMaxWord := checkXMLMaxWord() + if checkMaxWord != true { + t.Fatalf("got %v, want true", checkMaxWord) + } + }) + t.Run("test xmlMaxWordExceed", func(t *testing.T) { + SetConfig(Config{Limitation: LenthLimitation{XMLMaxWord: 10}}) + exceed := xmlMaxWordExceed(10) + if exceed != false { + t.Fatalf("got %v, want false", exceed) + } + exceed = xmlMaxWordExceed(11) + if exceed != true { + t.Fatalf("got %v, want true", exceed) + } + }) + t.Run("test parse pptx with maxword", func(t *testing.T) { + SetConfig(Config{Limitation: LenthLimitation{XMLMaxWord: 2}}) + f, err := os.Open("./docx_test/testdata/sample_3.docx") + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + + resp, _, err := ConvertDocx(f) + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + if want := "Content from docx file"; !strings.Contains(resp, want) { + t.Errorf("expected %v to contains %v", resp, want) + } + if want := "second"; strings.Contains(resp, want) { + t.Errorf("expected %v to not contains %v", resp, want) + } + }) + +} + +func TestPDFPageLimit(t *testing.T) { + SetConfig(Config{Limitation: LenthLimitation{PdfFirstPage: 2, PdfLastPage: 3}}) + f, err := os.Open("./pdf_test/testdata/pdf.pdf") + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + + resp, _, err := ConvertPDF(f) + if err != nil { + t.Fatalf("got error = %v, want nil", err) + } + if want := "2"; !strings.Contains(resp, want) { + t.Errorf("expected %v to contains %v", resp, want) + } + if want := "3"; !strings.Contains(resp, want) { + t.Errorf("expected %v to contains %v", resp, want) + } + if want := "1"; strings.Contains(resp, want) { + t.Errorf("expected %v to not contains %v", resp, want) + } + if want := "4"; strings.Contains(resp, want) { + t.Errorf("expected %v to not contains %v", resp, want) + } + if want := "5"; strings.Contains(resp, want) { + t.Errorf("expected %v to not contains %v", resp, want) + } +} diff --git a/pdf_test/testdata/pdf.pdf b/pdf_test/testdata/pdf.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9cf8965f13fb61f192262df2fb374ff1fc21ed6f GIT binary patch literal 77485 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 literal 0 HcmV?d00001 diff --git a/pdf_text.go b/pdf_text.go index 01b65f8..ff49fe2 100644 --- a/pdf_text.go +++ b/pdf_text.go @@ -3,6 +3,7 @@ package docconv import ( "fmt" "os/exec" + "strconv" "strings" "time" ) @@ -54,9 +55,20 @@ func ConvertPDFText(path string) (BodyResult, MetaResult, error) { mr <- metaResult }() + parameters := []string{ + "-q", "-nopgbrk", "-enc", "UTF-8", "-eol", "unix", + } + if config.Limitation.PdfFirstPage > 0 { + parameters = append(parameters, "-f", strconv.Itoa(config.Limitation.PdfFirstPage)) + } + if config.Limitation.PdfLastPage > 0 { + parameters = append(parameters, "-l", strconv.Itoa(config.Limitation.PdfLastPage)) + } + parameters = append(parameters, path, "-") + br := make(chan BodyResult, 1) go func() { - body, err := exec.Command("pdftotext", "-q", "-nopgbrk", "-enc", "UTF-8", "-eol", "unix", path, "-").Output() + body, err := exec.Command("pdftotext", parameters...).Output() if err != nil { bodyResult.err = err } diff --git a/xml.go b/xml.go index 8f422a3..9435e34 100644 --- a/xml.go +++ b/xml.go @@ -69,6 +69,10 @@ func XMLToText(r io.Reader, breaks []string, skip []string, strict bool) (string } } } + // check max word limit for insufficient memory + if checkXMLMaxWord() && xmlMaxWordExceed(len(result)) { + break + } } return result, nil } From 8f9161c7dc230b82ce40052f0b93d801cf44985b Mon Sep 17 00:00:00 2001 From: Jinxin Chen Date: Sat, 27 Jun 2020 23:09:53 +0800 Subject: [PATCH 2/2] install dependency --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 19271c3..3030372 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ go: - "1.14" - tip go_import_path: code.sajari.com/docconv +before_install: + - sudo apt-get -y install poppler-utils notifications: email: - infra@sajari.com