mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-29 13:49:10 +08:00
365 lines
9.7 KiB
Go
365 lines
9.7 KiB
Go
// Copyright 2017 Baliance. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by the terms of the Affero GNU General
|
|
// Public License version 3.0 as published by the Free Software Foundation and
|
|
// appearing in the file LICENSE included in the packaging of this file. A
|
|
// commercial license can be purchased by contacting sales@baliance.com.
|
|
|
|
package wordprocessingml
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"log"
|
|
)
|
|
|
|
type EG_SectPrContents struct {
|
|
// Section-Wide Footnote Properties
|
|
FootnotePr *CT_FtnProps
|
|
// Section-Wide Endnote Properties
|
|
EndnotePr *CT_EdnProps
|
|
// Section Type
|
|
Type *CT_SectType
|
|
// Page Size
|
|
PgSz *CT_PageSz
|
|
// Page Margins
|
|
PgMar *CT_PageMar
|
|
// Paper Source Information
|
|
PaperSrc *CT_PaperSource
|
|
// Page Borders
|
|
PgBorders *CT_PageBorders
|
|
// Line Numbering Settings
|
|
LnNumType *CT_LineNumber
|
|
// Page Numbering Settings
|
|
PgNumType *CT_PageNumber
|
|
// Column Definitions
|
|
Cols *CT_Columns
|
|
// Only Allow Editing of Form Fields
|
|
FormProt *CT_OnOff
|
|
// Vertical Text Alignment on Page
|
|
VAlign *CT_VerticalJc
|
|
// Suppress Endnotes In Document
|
|
NoEndnote *CT_OnOff
|
|
// Different First Page Headers and Footers
|
|
TitlePg *CT_OnOff
|
|
// Text Flow Direction
|
|
TextDirection *CT_TextDirection
|
|
// Right to Left Section Layout
|
|
Bidi *CT_OnOff
|
|
// Gutter on Right Side of Page
|
|
RtlGutter *CT_OnOff
|
|
// Document Grid
|
|
DocGrid *CT_DocGrid
|
|
// Reference to Printer Settings Data
|
|
PrinterSettings *CT_Rel
|
|
}
|
|
|
|
func NewEG_SectPrContents() *EG_SectPrContents {
|
|
ret := &EG_SectPrContents{}
|
|
return ret
|
|
}
|
|
|
|
func (m *EG_SectPrContents) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
if m.FootnotePr != nil {
|
|
sefootnotePr := xml.StartElement{Name: xml.Name{Local: "w:footnotePr"}}
|
|
e.EncodeElement(m.FootnotePr, sefootnotePr)
|
|
}
|
|
if m.EndnotePr != nil {
|
|
seendnotePr := xml.StartElement{Name: xml.Name{Local: "w:endnotePr"}}
|
|
e.EncodeElement(m.EndnotePr, seendnotePr)
|
|
}
|
|
if m.Type != nil {
|
|
setype := xml.StartElement{Name: xml.Name{Local: "w:type"}}
|
|
e.EncodeElement(m.Type, setype)
|
|
}
|
|
if m.PgSz != nil {
|
|
sepgSz := xml.StartElement{Name: xml.Name{Local: "w:pgSz"}}
|
|
e.EncodeElement(m.PgSz, sepgSz)
|
|
}
|
|
if m.PgMar != nil {
|
|
sepgMar := xml.StartElement{Name: xml.Name{Local: "w:pgMar"}}
|
|
e.EncodeElement(m.PgMar, sepgMar)
|
|
}
|
|
if m.PaperSrc != nil {
|
|
sepaperSrc := xml.StartElement{Name: xml.Name{Local: "w:paperSrc"}}
|
|
e.EncodeElement(m.PaperSrc, sepaperSrc)
|
|
}
|
|
if m.PgBorders != nil {
|
|
sepgBorders := xml.StartElement{Name: xml.Name{Local: "w:pgBorders"}}
|
|
e.EncodeElement(m.PgBorders, sepgBorders)
|
|
}
|
|
if m.LnNumType != nil {
|
|
selnNumType := xml.StartElement{Name: xml.Name{Local: "w:lnNumType"}}
|
|
e.EncodeElement(m.LnNumType, selnNumType)
|
|
}
|
|
if m.PgNumType != nil {
|
|
sepgNumType := xml.StartElement{Name: xml.Name{Local: "w:pgNumType"}}
|
|
e.EncodeElement(m.PgNumType, sepgNumType)
|
|
}
|
|
if m.Cols != nil {
|
|
secols := xml.StartElement{Name: xml.Name{Local: "w:cols"}}
|
|
e.EncodeElement(m.Cols, secols)
|
|
}
|
|
if m.FormProt != nil {
|
|
seformProt := xml.StartElement{Name: xml.Name{Local: "w:formProt"}}
|
|
e.EncodeElement(m.FormProt, seformProt)
|
|
}
|
|
if m.VAlign != nil {
|
|
sevAlign := xml.StartElement{Name: xml.Name{Local: "w:vAlign"}}
|
|
e.EncodeElement(m.VAlign, sevAlign)
|
|
}
|
|
if m.NoEndnote != nil {
|
|
senoEndnote := xml.StartElement{Name: xml.Name{Local: "w:noEndnote"}}
|
|
e.EncodeElement(m.NoEndnote, senoEndnote)
|
|
}
|
|
if m.TitlePg != nil {
|
|
setitlePg := xml.StartElement{Name: xml.Name{Local: "w:titlePg"}}
|
|
e.EncodeElement(m.TitlePg, setitlePg)
|
|
}
|
|
if m.TextDirection != nil {
|
|
setextDirection := xml.StartElement{Name: xml.Name{Local: "w:textDirection"}}
|
|
e.EncodeElement(m.TextDirection, setextDirection)
|
|
}
|
|
if m.Bidi != nil {
|
|
sebidi := xml.StartElement{Name: xml.Name{Local: "w:bidi"}}
|
|
e.EncodeElement(m.Bidi, sebidi)
|
|
}
|
|
if m.RtlGutter != nil {
|
|
sertlGutter := xml.StartElement{Name: xml.Name{Local: "w:rtlGutter"}}
|
|
e.EncodeElement(m.RtlGutter, sertlGutter)
|
|
}
|
|
if m.DocGrid != nil {
|
|
sedocGrid := xml.StartElement{Name: xml.Name{Local: "w:docGrid"}}
|
|
e.EncodeElement(m.DocGrid, sedocGrid)
|
|
}
|
|
if m.PrinterSettings != nil {
|
|
seprinterSettings := xml.StartElement{Name: xml.Name{Local: "w:printerSettings"}}
|
|
e.EncodeElement(m.PrinterSettings, seprinterSettings)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EG_SectPrContents) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
// initialize to default
|
|
lEG_SectPrContents:
|
|
for {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
switch el := tok.(type) {
|
|
case xml.StartElement:
|
|
switch el.Name.Local {
|
|
case "footnotePr":
|
|
m.FootnotePr = NewCT_FtnProps()
|
|
if err := d.DecodeElement(m.FootnotePr, &el); err != nil {
|
|
return err
|
|
}
|
|
case "endnotePr":
|
|
m.EndnotePr = NewCT_EdnProps()
|
|
if err := d.DecodeElement(m.EndnotePr, &el); err != nil {
|
|
return err
|
|
}
|
|
case "type":
|
|
m.Type = NewCT_SectType()
|
|
if err := d.DecodeElement(m.Type, &el); err != nil {
|
|
return err
|
|
}
|
|
case "pgSz":
|
|
m.PgSz = NewCT_PageSz()
|
|
if err := d.DecodeElement(m.PgSz, &el); err != nil {
|
|
return err
|
|
}
|
|
case "pgMar":
|
|
m.PgMar = NewCT_PageMar()
|
|
if err := d.DecodeElement(m.PgMar, &el); err != nil {
|
|
return err
|
|
}
|
|
case "paperSrc":
|
|
m.PaperSrc = NewCT_PaperSource()
|
|
if err := d.DecodeElement(m.PaperSrc, &el); err != nil {
|
|
return err
|
|
}
|
|
case "pgBorders":
|
|
m.PgBorders = NewCT_PageBorders()
|
|
if err := d.DecodeElement(m.PgBorders, &el); err != nil {
|
|
return err
|
|
}
|
|
case "lnNumType":
|
|
m.LnNumType = NewCT_LineNumber()
|
|
if err := d.DecodeElement(m.LnNumType, &el); err != nil {
|
|
return err
|
|
}
|
|
case "pgNumType":
|
|
m.PgNumType = NewCT_PageNumber()
|
|
if err := d.DecodeElement(m.PgNumType, &el); err != nil {
|
|
return err
|
|
}
|
|
case "cols":
|
|
m.Cols = NewCT_Columns()
|
|
if err := d.DecodeElement(m.Cols, &el); err != nil {
|
|
return err
|
|
}
|
|
case "formProt":
|
|
m.FormProt = NewCT_OnOff()
|
|
if err := d.DecodeElement(m.FormProt, &el); err != nil {
|
|
return err
|
|
}
|
|
case "vAlign":
|
|
m.VAlign = NewCT_VerticalJc()
|
|
if err := d.DecodeElement(m.VAlign, &el); err != nil {
|
|
return err
|
|
}
|
|
case "noEndnote":
|
|
m.NoEndnote = NewCT_OnOff()
|
|
if err := d.DecodeElement(m.NoEndnote, &el); err != nil {
|
|
return err
|
|
}
|
|
case "titlePg":
|
|
m.TitlePg = NewCT_OnOff()
|
|
if err := d.DecodeElement(m.TitlePg, &el); err != nil {
|
|
return err
|
|
}
|
|
case "textDirection":
|
|
m.TextDirection = NewCT_TextDirection()
|
|
if err := d.DecodeElement(m.TextDirection, &el); err != nil {
|
|
return err
|
|
}
|
|
case "bidi":
|
|
m.Bidi = NewCT_OnOff()
|
|
if err := d.DecodeElement(m.Bidi, &el); err != nil {
|
|
return err
|
|
}
|
|
case "rtlGutter":
|
|
m.RtlGutter = NewCT_OnOff()
|
|
if err := d.DecodeElement(m.RtlGutter, &el); err != nil {
|
|
return err
|
|
}
|
|
case "docGrid":
|
|
m.DocGrid = NewCT_DocGrid()
|
|
if err := d.DecodeElement(m.DocGrid, &el); err != nil {
|
|
return err
|
|
}
|
|
case "printerSettings":
|
|
m.PrinterSettings = NewCT_Rel()
|
|
if err := d.DecodeElement(m.PrinterSettings, &el); err != nil {
|
|
return err
|
|
}
|
|
default:
|
|
log.Printf("skipping unsupported element on EG_SectPrContents %v", el.Name)
|
|
if err := d.Skip(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
case xml.EndElement:
|
|
break lEG_SectPrContents
|
|
case xml.CharData:
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Validate validates the EG_SectPrContents and its children
|
|
func (m *EG_SectPrContents) Validate() error {
|
|
return m.ValidateWithPath("EG_SectPrContents")
|
|
}
|
|
|
|
// ValidateWithPath validates the EG_SectPrContents and its children, prefixing error messages with path
|
|
func (m *EG_SectPrContents) ValidateWithPath(path string) error {
|
|
if m.FootnotePr != nil {
|
|
if err := m.FootnotePr.ValidateWithPath(path + "/FootnotePr"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.EndnotePr != nil {
|
|
if err := m.EndnotePr.ValidateWithPath(path + "/EndnotePr"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.Type != nil {
|
|
if err := m.Type.ValidateWithPath(path + "/Type"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PgSz != nil {
|
|
if err := m.PgSz.ValidateWithPath(path + "/PgSz"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PgMar != nil {
|
|
if err := m.PgMar.ValidateWithPath(path + "/PgMar"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PaperSrc != nil {
|
|
if err := m.PaperSrc.ValidateWithPath(path + "/PaperSrc"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PgBorders != nil {
|
|
if err := m.PgBorders.ValidateWithPath(path + "/PgBorders"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.LnNumType != nil {
|
|
if err := m.LnNumType.ValidateWithPath(path + "/LnNumType"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PgNumType != nil {
|
|
if err := m.PgNumType.ValidateWithPath(path + "/PgNumType"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.Cols != nil {
|
|
if err := m.Cols.ValidateWithPath(path + "/Cols"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.FormProt != nil {
|
|
if err := m.FormProt.ValidateWithPath(path + "/FormProt"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.VAlign != nil {
|
|
if err := m.VAlign.ValidateWithPath(path + "/VAlign"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.NoEndnote != nil {
|
|
if err := m.NoEndnote.ValidateWithPath(path + "/NoEndnote"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.TitlePg != nil {
|
|
if err := m.TitlePg.ValidateWithPath(path + "/TitlePg"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.TextDirection != nil {
|
|
if err := m.TextDirection.ValidateWithPath(path + "/TextDirection"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.Bidi != nil {
|
|
if err := m.Bidi.ValidateWithPath(path + "/Bidi"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.RtlGutter != nil {
|
|
if err := m.RtlGutter.ValidateWithPath(path + "/RtlGutter"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.DocGrid != nil {
|
|
if err := m.DocGrid.ValidateWithPath(path + "/DocGrid"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if m.PrinterSettings != nil {
|
|
if err := m.PrinterSettings.ValidateWithPath(path + "/PrinterSettings"); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|