2017-08-28 20:56:18 -05:00
// Copyright 2017 Baliance. All rights reserved.
package main
import "baliance.com/gooxml/document"
import wml "baliance.com/gooxml/schema/schemas.openxmlformats.org/wordprocessingml"
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 main ( ) {
doc := document . New ( )
// Force the TOC to update upon opening the document
doc . Settings . SetUpdateFieldsOnOpen ( true )
// Add a TOC
doc . AddParagraph ( ) . AddRun ( ) . AddField ( document . FieldTOC )
// followed by a page break
2017-08-31 19:28:39 -05:00
doc . AddParagraph ( ) . Properties ( ) . AddSection ( wml . ST_SectionMarkNextPage )
2017-08-28 20:56:18 -05:00
// and finally paragraphs at different heading levels
for i := 0 ; i < 4 ; i ++ {
para := doc . AddParagraph ( )
2017-08-31 19:28:39 -05:00
para . Properties ( ) . SetHeadingLevel ( 1 )
2017-08-28 20:56:18 -05:00
para . AddRun ( ) . AddText ( "First Level" )
doc . AddParagraph ( ) . AddRun ( ) . AddText ( lorem )
for i := 0 ; i < 3 ; i ++ {
para := doc . AddParagraph ( )
2017-08-31 19:28:39 -05:00
para . Properties ( ) . SetHeadingLevel ( 2 )
2017-08-28 20:56:18 -05:00
para . AddRun ( ) . AddText ( "Second Level" )
doc . AddParagraph ( ) . AddRun ( ) . AddText ( lorem )
para = doc . AddParagraph ( )
2017-08-31 19:28:39 -05:00
para . Properties ( ) . SetHeadingLevel ( 3 )
2017-08-28 20:56:18 -05:00
para . AddRun ( ) . AddText ( "Third Level" )
doc . AddParagraph ( ) . AddRun ( ) . AddText ( lorem )
}
}
doc . SaveToFile ( "toc.docx" )
}