mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-29 13:49:10 +08:00
65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
// Copyright 2017 Baliance. All rights reserved.
|
|
|
|
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"baliance.com/gooxml/common"
|
|
"baliance.com/gooxml/document"
|
|
"baliance.com/gooxml/measurement"
|
|
"baliance.com/gooxml/schema/soo/wml"
|
|
)
|
|
|
|
func main() {
|
|
doc := document.New()
|
|
|
|
img, err := common.ImageFromFile("gophercolor.png")
|
|
if err != nil {
|
|
log.Fatalf("unable to create image: %s", err)
|
|
}
|
|
|
|
hdr := doc.AddHeader()
|
|
// We need to add a reference of the image to the header instead of to the
|
|
// document
|
|
iref, err := hdr.AddImage(img)
|
|
if err != nil {
|
|
log.Fatalf("unable to to add image to document: %s", err)
|
|
}
|
|
|
|
para := hdr.AddParagraph()
|
|
para.Properties().AddTabStop(2.5*measurement.Inch, wml.ST_TabJcCenter, wml.ST_TabTlcNone)
|
|
run := para.AddRun()
|
|
run.AddTab()
|
|
run.AddText("My Document Title")
|
|
|
|
imgInl, _ := para.AddRun().AddDrawingInline(iref)
|
|
imgInl.SetSize(1*measurement.Inch, 1*measurement.Inch)
|
|
|
|
// Headers and footers are not immediately associated with a document as a
|
|
// document can have multiple headers and footers for different sections.
|
|
doc.BodySection().SetHeader(hdr, wml.ST_HdrFtrDefault)
|
|
|
|
ftr := doc.AddFooter()
|
|
para = ftr.AddParagraph()
|
|
para.Properties().AddTabStop(6*measurement.Inch, wml.ST_TabJcRight, wml.ST_TabTlcNone)
|
|
run = para.AddRun()
|
|
run.AddText("Some subtitle goes here")
|
|
run.AddTab()
|
|
run.AddText("Pg ")
|
|
run.AddField(document.FieldCurrentPage)
|
|
run.AddText(" of ")
|
|
run.AddField(document.FieldNumberOfPages)
|
|
doc.BodySection().SetFooter(ftr, wml.ST_HdrFtrDefault)
|
|
|
|
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`
|
|
|
|
for i := 0; i < 5; i++ {
|
|
para = doc.AddParagraph()
|
|
run = para.AddRun()
|
|
run.AddText(lorem)
|
|
}
|
|
|
|
doc.SaveToFile("header-footer.docx")
|
|
}
|