From e1e7f645239e159d3fd9fccc0ef940f295022fd8 Mon Sep 17 00:00:00 2001 From: stewartwebb Date: Thu, 5 Oct 2017 07:45:01 +0100 Subject: [PATCH] Added search and replace to word/_rels/document.xml.rels --- README.md | 5 +++-- TestDocument.docx | Bin 27400 -> 9958 bytes docx.go | 54 +++++++++++++++++++++++++++++++++++++++++++++- docx_test.go | 17 +++++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0079696..1adeb9c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Simple Google Go (golang) library for replace text in microsoft word (.docx) file The following constitutes the bare minimum required to replace text in DOCX document. -``` go +``` go import ( "github.com/nguyenthenguyen/docx" @@ -16,6 +16,7 @@ func main() { // Replace like https://golang.org/pkg/strings/#Replace docx1.Replace("old_1_1", "new_1_1", -1) docx1.Replace("old_1_2", "new_1_2", -1) + docx1.ReplaceLink("http://example.com/", "https://github.com/nguyenthenguyen/docx") docx1.ReplaceHeader("out with the old", "in with the new") docx1.ReplaceFooter("Change This Footer", "new footer") docx1.WriteToFile("./new_result_1.docx") @@ -28,4 +29,4 @@ func main() { r.Close() } -``` \ No newline at end of file +``` diff --git a/TestDocument.docx b/TestDocument.docx index 995dc884d41f726b674b65b6df2e7ba8040fb66b..8924b4587071ae6459dc9da614090cebfa656f9c 100644 GIT binary patch literal 9958 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 literal 27400 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