diff --git a/main.go b/main.go index ac23c76..09a7125 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,8 @@ package main import ( - "dt_automate/method" "dt_automate/tool" + "dt_automate/wps" "flag" "fmt" "log" @@ -95,8 +95,8 @@ func main() { // method.HW_TSGZ() //截取态势感知的图片 // //政务网区 // method.ZWW_FW1() //截取防火墙的图片 - method.ZWW_TSGZ() //截取态势感知的图片 - // wps.Word() + // method.ZWW_TSGZ() //截取态势感知的图片 + wps.Word() // wps.Damo() } } else { diff --git a/simple.docx b/simple.docx index ca6a5a0..6062cf6 100644 Binary files a/simple.docx and b/simple.docx differ diff --git a/temp.docx b/temp.docx index b3df6e4..6eea909 100644 Binary files a/temp.docx and b/temp.docx differ diff --git a/temp_save.docx b/temp_save.docx deleted file mode 100644 index 967dc57..0000000 Binary files a/temp_save.docx and /dev/null differ diff --git a/wps/word.go b/wps/word.go index ab3c3c3..4ead381 100644 --- a/wps/word.go +++ b/wps/word.go @@ -1,9 +1,9 @@ package wps import ( - "io/ioutil" "log" "strings" + "time" "github.com/unidoc/unioffice/common" "github.com/unidoc/unioffice/common/license" @@ -45,19 +45,33 @@ func Word() { for _, p := range paragraphs { for _, r := range p.Runs() { if strings.Contains(r.Text(), "{{DATE_A}}") { - Replacetext(r, "{{DATE_A}}", "2025年02月25日") - } else if strings.Contains(r.Text(), "{{DATE_A}}") { - // r.ClearContent() + Replacetext(r, "{{DATE_A}}", time.Date(2025, time.February, 25, 0, 0, 0, 0, time.Local).Format("2006年01月02日")) + } else if strings.Contains(r.Text(), "{{HLW_FW_1}}") { //插入互联网防火墙图片 + Replaceimg(r, doc, "img/hw_fw1.png") + } else if strings.Contains(r.Text(), "{{HLW_AFC2000_1}}") { //插入互联网流量清洗图片 + Replaceimg(r, doc, "img/afc2000_1.png") + } else if strings.Contains(r.Text(), "{{HLW_AFC2000_2}}") { //插入互联网流量清洗图片 + Replaceimg(r, doc, "img/afc2000_2.png") + } else if strings.Contains(r.Text(), "{{HLW_TSGZ}}") { //插入互联网态势感知图片 + Replaceimg(r, doc, "img/hw_tsgz.png") + } else if strings.Contains(r.Text(), "{{HLW_BLJ}}") { //插入互联网堡垒机图片 + // Replaceimg(r, doc, "img/hw_fw1.png") + } else if strings.Contains(r.Text(), "{{ZWW_FW_1}}") { //插入政务网防火墙图片 + Replaceimg(r, doc, "img/zww_fw1.png") + } else if strings.Contains(r.Text(), "{{ZWW_TSGZ}}") { //插入政务网态势感知图片 + Replaceimg(r, doc, "img/zww_tsgz.png") + } else if strings.Contains(r.Text(), "{{ZWW_BLJ}}") { //插入政务网堡垒机图片 + // Replaceimg(r, doc, "img/hw_fw1.png") } else { - // fmt.Println("not modifying", r.Text()) + // log.Println("") } } } - // 遍历文档中的表格 + // 遍历文档中的表格,替换{{bianliang}} 中的内容 for _, table := range doc.Tables() { for _, row := range table.Rows() { - for i, cell := range row.Cells() { + for _, cell := range row.Cells() { var ( b string p document.Paragraph @@ -69,96 +83,45 @@ func Word() { } // log.Println(k) } - log.Println(i) + // log.Println(i) if strings.Contains(b, "{{DATE_B}}") { - // log.Println(k) + log.Println("匹配到模板内容:", b) for _, h := range cell.Paragraphs()[k].Runs() { h.ClearContent() } cell.Properties().SetVerticalAlignment(wml.ST_VerticalJcCenter) - cell.Paragraphs()[k].AddRun().AddText("2025年02月25日") + // log.Println(time.Date(2025, time.February, 25, 0, 0, 0, 0, time.Local).Format("2006年01月02日")) + cell.Paragraphs()[k].AddRun().AddText(time.Date(2025, time.February, 25, 0, 0, 0, 0, time.Local).Format("2006年01月02日")) } - log.Println(b) + // log.Println(b) b = "" } } } - doc.SaveToFile("simple.docx") + doc.SaveToFile("大同信创云平台安全运维日报" + time.Date(2025, time.February, 25, 0, 0, 0, 0, time.Local).Format("20060102") + ".docx") } // 文字替换 func Replacetext(r document.Run, src, ends string) { datas := r.Text() + log.Println("匹配到的内容:", datas) r.ClearContent() r.AddText(strings.Replace(datas, src, ends, -1)) - log.Println(strings.Replace(datas, src, ends, -1)) + log.Println("替换后的内容:", strings.Replace(datas, src, ends, -1)) } -// func createParaRun(doc *document.Document, s string) document.Run { -// para := doc.AddParagraph() -// run := para.AddRun() -// run.AddText(s) -// return run -// } - -var lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lobortis, lectus dictum feugiat tempus, sem neque finibus enim, sed eleifend sem nunc ac diam. Vestibulum tempus sagittis elementum` - -func Word_img() { - doc := document.New() - - img1, err := common.ImageFromFile("gophercolor.png") +// 插入图片 +func Replaceimg(r document.Run, doc *document.Document, path_img string) { + r.ClearContent() + img1, err := common.ImageFromFile("img/hw_fw1.png") if err != nil { log.Fatalf("unable to create image: %s", err) } - img2data, err := ioutil.ReadFile("gophercolor.png") - if err != nil { - log.Fatalf("unable to read file: %s", err) - } - img2, err := common.ImageFromBytes(img2data) - if err != nil { - log.Fatalf("unable to create image: %s", err) - } - img1ref, err := doc.AddImage(img1) if err != nil { log.Fatalf("unable to add image to document: %s", err) } - img2ref, err := doc.AddImage(img2) - if err != nil { - log.Fatalf("unable to add image to document: %s", err) - } - - para := doc.AddParagraph() - anchored, err := para.AddRun().AddDrawingAnchored(img1ref) //添加绘图锚定 - if err != nil { - log.Fatalf("unable to add anchored image: %s", err) - } - anchored.SetName("Gopher") - anchored.SetSize(2*measurement.Inch, 2*measurement.Inch) - anchored.SetOrigin(wml.WdST_RelFromHPage, wml.WdST_RelFromVTopMargin) //设置原点 - anchored.SetHAlignment(wml.WdST_AlignHCenter) //设置校准 - anchored.SetYOffset(3 * measurement.Inch) //设置偏移量 - anchored.SetTextWrapSquare(wml.WdST_WrapTextBothSides) //设置文本环绕正方形 - - run := para.AddRun() - for i := 0; i < 16; i++ { - run.AddText(lorem) - - // drop an inline image in - if i == 13 { - inl, err := run.AddDrawingInline(img1ref) - if err != nil { - log.Fatalf("unable to add inline image: %s", err) - } - inl.SetSize(1*measurement.Inch, 1*measurement.Inch) - } - if i == 15 { - inl, err := run.AddDrawingInline(img2ref) - if err != nil { - log.Fatalf("unable to add inline image: %s", err) - } - inl.SetSize(1*measurement.Inch, 1*measurement.Inch) - } - } - doc.SaveToFile("image.docx") + anchored, _ := r.AddDrawingInline(img1ref) //在文档中插入图片 + anchored.SetSize(img1ref.RelativeWidth(5.2*measurement.Inch), 5.2*measurement.Inch) + log.Println("插入图片:", path_img) } diff --git a/大同信创云平台安全运维日报20250225.docx b/大同信创云平台安全运维日报20250225.docx new file mode 100644 index 0000000..2190431 Binary files /dev/null and b/大同信创云平台安全运维日报20250225.docx differ