mirror of
https://github.com/unidoc/unioffice.git
synced 2025-05-04 22:17:38 +08:00
649 lines
16 KiB
Go
649 lines
16 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 wordprocessingDrawing
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"fmt"
|
|
|
|
"baliance.com/gooxml"
|
|
"baliance.com/gooxml/schema/schemas.openxmlformats.org/drawingml"
|
|
)
|
|
|
|
func ParseUnionST_Coordinate(s string) (drawingml.ST_Coordinate, error) {
|
|
return drawingml.ParseUnionST_Coordinate(s)
|
|
}
|
|
|
|
type ST_WrapText byte
|
|
|
|
const (
|
|
ST_WrapTextUnset ST_WrapText = 0
|
|
ST_WrapTextBothSides ST_WrapText = 1
|
|
ST_WrapTextLeft ST_WrapText = 2
|
|
ST_WrapTextRight ST_WrapText = 3
|
|
ST_WrapTextLargest ST_WrapText = 4
|
|
)
|
|
|
|
func (e ST_WrapText) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
|
|
attr := xml.Attr{}
|
|
attr.Name = name
|
|
switch e {
|
|
case ST_WrapTextUnset:
|
|
attr.Value = ""
|
|
case ST_WrapTextBothSides:
|
|
attr.Value = "bothSides"
|
|
case ST_WrapTextLeft:
|
|
attr.Value = "left"
|
|
case ST_WrapTextRight:
|
|
attr.Value = "right"
|
|
case ST_WrapTextLargest:
|
|
attr.Value = "largest"
|
|
}
|
|
return attr, nil
|
|
}
|
|
func (e *ST_WrapText) UnmarshalXMLAttr(attr xml.Attr) error {
|
|
switch attr.Value {
|
|
case "":
|
|
*e = 0
|
|
case "bothSides":
|
|
*e = 1
|
|
case "left":
|
|
*e = 2
|
|
case "right":
|
|
*e = 3
|
|
case "largest":
|
|
*e = 4
|
|
}
|
|
return nil
|
|
}
|
|
func (m ST_WrapText) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
return e.EncodeElement(m.String(), start)
|
|
}
|
|
func (m *ST_WrapText) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if cd, ok := tok.(xml.CharData); !ok {
|
|
return fmt.Errorf("expected char data, got %T", tok)
|
|
} else {
|
|
switch string(cd) {
|
|
case "":
|
|
*m = 0
|
|
case "bothSides":
|
|
*m = 1
|
|
case "left":
|
|
*m = 2
|
|
case "right":
|
|
*m = 3
|
|
case "largest":
|
|
*m = 4
|
|
}
|
|
}
|
|
tok, err = d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("expected end element, got %v", tok)
|
|
}
|
|
func (m ST_WrapText) String() string {
|
|
switch m {
|
|
case 0:
|
|
return ""
|
|
case 1:
|
|
return "bothSides"
|
|
case 2:
|
|
return "left"
|
|
case 3:
|
|
return "right"
|
|
case 4:
|
|
return "largest"
|
|
}
|
|
return ""
|
|
}
|
|
func (m ST_WrapText) Validate() error {
|
|
return m.ValidateWithPath("")
|
|
}
|
|
func (m ST_WrapText) ValidateWithPath(path string) error {
|
|
switch m {
|
|
case 0, 1, 2, 3, 4:
|
|
default:
|
|
return fmt.Errorf("%s: out of range value %d", path, int(m))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ST_AlignH byte
|
|
|
|
const (
|
|
ST_AlignHUnset ST_AlignH = 0
|
|
ST_AlignHLeft ST_AlignH = 1
|
|
ST_AlignHRight ST_AlignH = 2
|
|
ST_AlignHCenter ST_AlignH = 3
|
|
ST_AlignHInside ST_AlignH = 4
|
|
ST_AlignHOutside ST_AlignH = 5
|
|
)
|
|
|
|
func (e ST_AlignH) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
|
|
attr := xml.Attr{}
|
|
attr.Name = name
|
|
switch e {
|
|
case ST_AlignHUnset:
|
|
attr.Value = ""
|
|
case ST_AlignHLeft:
|
|
attr.Value = "left"
|
|
case ST_AlignHRight:
|
|
attr.Value = "right"
|
|
case ST_AlignHCenter:
|
|
attr.Value = "center"
|
|
case ST_AlignHInside:
|
|
attr.Value = "inside"
|
|
case ST_AlignHOutside:
|
|
attr.Value = "outside"
|
|
}
|
|
return attr, nil
|
|
}
|
|
func (e *ST_AlignH) UnmarshalXMLAttr(attr xml.Attr) error {
|
|
switch attr.Value {
|
|
case "":
|
|
*e = 0
|
|
case "left":
|
|
*e = 1
|
|
case "right":
|
|
*e = 2
|
|
case "center":
|
|
*e = 3
|
|
case "inside":
|
|
*e = 4
|
|
case "outside":
|
|
*e = 5
|
|
}
|
|
return nil
|
|
}
|
|
func (m ST_AlignH) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
return e.EncodeElement(m.String(), start)
|
|
}
|
|
func (m *ST_AlignH) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if cd, ok := tok.(xml.CharData); !ok {
|
|
return fmt.Errorf("expected char data, got %T", tok)
|
|
} else {
|
|
switch string(cd) {
|
|
case "":
|
|
*m = 0
|
|
case "left":
|
|
*m = 1
|
|
case "right":
|
|
*m = 2
|
|
case "center":
|
|
*m = 3
|
|
case "inside":
|
|
*m = 4
|
|
case "outside":
|
|
*m = 5
|
|
}
|
|
}
|
|
tok, err = d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("expected end element, got %v", tok)
|
|
}
|
|
func (m ST_AlignH) String() string {
|
|
switch m {
|
|
case 0:
|
|
return ""
|
|
case 1:
|
|
return "left"
|
|
case 2:
|
|
return "right"
|
|
case 3:
|
|
return "center"
|
|
case 4:
|
|
return "inside"
|
|
case 5:
|
|
return "outside"
|
|
}
|
|
return ""
|
|
}
|
|
func (m ST_AlignH) Validate() error {
|
|
return m.ValidateWithPath("")
|
|
}
|
|
func (m ST_AlignH) ValidateWithPath(path string) error {
|
|
switch m {
|
|
case 0, 1, 2, 3, 4, 5:
|
|
default:
|
|
return fmt.Errorf("%s: out of range value %d", path, int(m))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ST_RelFromH byte
|
|
|
|
const (
|
|
ST_RelFromHUnset ST_RelFromH = 0
|
|
ST_RelFromHMargin ST_RelFromH = 1
|
|
ST_RelFromHPage ST_RelFromH = 2
|
|
ST_RelFromHColumn ST_RelFromH = 3
|
|
ST_RelFromHCharacter ST_RelFromH = 4
|
|
ST_RelFromHLeftMargin ST_RelFromH = 5
|
|
ST_RelFromHRightMargin ST_RelFromH = 6
|
|
ST_RelFromHInsideMargin ST_RelFromH = 7
|
|
ST_RelFromHOutsideMargin ST_RelFromH = 8
|
|
)
|
|
|
|
func (e ST_RelFromH) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
|
|
attr := xml.Attr{}
|
|
attr.Name = name
|
|
switch e {
|
|
case ST_RelFromHUnset:
|
|
attr.Value = ""
|
|
case ST_RelFromHMargin:
|
|
attr.Value = "margin"
|
|
case ST_RelFromHPage:
|
|
attr.Value = "page"
|
|
case ST_RelFromHColumn:
|
|
attr.Value = "column"
|
|
case ST_RelFromHCharacter:
|
|
attr.Value = "character"
|
|
case ST_RelFromHLeftMargin:
|
|
attr.Value = "leftMargin"
|
|
case ST_RelFromHRightMargin:
|
|
attr.Value = "rightMargin"
|
|
case ST_RelFromHInsideMargin:
|
|
attr.Value = "insideMargin"
|
|
case ST_RelFromHOutsideMargin:
|
|
attr.Value = "outsideMargin"
|
|
}
|
|
return attr, nil
|
|
}
|
|
func (e *ST_RelFromH) UnmarshalXMLAttr(attr xml.Attr) error {
|
|
switch attr.Value {
|
|
case "":
|
|
*e = 0
|
|
case "margin":
|
|
*e = 1
|
|
case "page":
|
|
*e = 2
|
|
case "column":
|
|
*e = 3
|
|
case "character":
|
|
*e = 4
|
|
case "leftMargin":
|
|
*e = 5
|
|
case "rightMargin":
|
|
*e = 6
|
|
case "insideMargin":
|
|
*e = 7
|
|
case "outsideMargin":
|
|
*e = 8
|
|
}
|
|
return nil
|
|
}
|
|
func (m ST_RelFromH) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
return e.EncodeElement(m.String(), start)
|
|
}
|
|
func (m *ST_RelFromH) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if cd, ok := tok.(xml.CharData); !ok {
|
|
return fmt.Errorf("expected char data, got %T", tok)
|
|
} else {
|
|
switch string(cd) {
|
|
case "":
|
|
*m = 0
|
|
case "margin":
|
|
*m = 1
|
|
case "page":
|
|
*m = 2
|
|
case "column":
|
|
*m = 3
|
|
case "character":
|
|
*m = 4
|
|
case "leftMargin":
|
|
*m = 5
|
|
case "rightMargin":
|
|
*m = 6
|
|
case "insideMargin":
|
|
*m = 7
|
|
case "outsideMargin":
|
|
*m = 8
|
|
}
|
|
}
|
|
tok, err = d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("expected end element, got %v", tok)
|
|
}
|
|
func (m ST_RelFromH) String() string {
|
|
switch m {
|
|
case 0:
|
|
return ""
|
|
case 1:
|
|
return "margin"
|
|
case 2:
|
|
return "page"
|
|
case 3:
|
|
return "column"
|
|
case 4:
|
|
return "character"
|
|
case 5:
|
|
return "leftMargin"
|
|
case 6:
|
|
return "rightMargin"
|
|
case 7:
|
|
return "insideMargin"
|
|
case 8:
|
|
return "outsideMargin"
|
|
}
|
|
return ""
|
|
}
|
|
func (m ST_RelFromH) Validate() error {
|
|
return m.ValidateWithPath("")
|
|
}
|
|
func (m ST_RelFromH) ValidateWithPath(path string) error {
|
|
switch m {
|
|
case 0, 1, 2, 3, 4, 5, 6, 7, 8:
|
|
default:
|
|
return fmt.Errorf("%s: out of range value %d", path, int(m))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ST_AlignV byte
|
|
|
|
const (
|
|
ST_AlignVUnset ST_AlignV = 0
|
|
ST_AlignVTop ST_AlignV = 1
|
|
ST_AlignVBottom ST_AlignV = 2
|
|
ST_AlignVCenter ST_AlignV = 3
|
|
ST_AlignVInside ST_AlignV = 4
|
|
ST_AlignVOutside ST_AlignV = 5
|
|
)
|
|
|
|
func (e ST_AlignV) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
|
|
attr := xml.Attr{}
|
|
attr.Name = name
|
|
switch e {
|
|
case ST_AlignVUnset:
|
|
attr.Value = ""
|
|
case ST_AlignVTop:
|
|
attr.Value = "top"
|
|
case ST_AlignVBottom:
|
|
attr.Value = "bottom"
|
|
case ST_AlignVCenter:
|
|
attr.Value = "center"
|
|
case ST_AlignVInside:
|
|
attr.Value = "inside"
|
|
case ST_AlignVOutside:
|
|
attr.Value = "outside"
|
|
}
|
|
return attr, nil
|
|
}
|
|
func (e *ST_AlignV) UnmarshalXMLAttr(attr xml.Attr) error {
|
|
switch attr.Value {
|
|
case "":
|
|
*e = 0
|
|
case "top":
|
|
*e = 1
|
|
case "bottom":
|
|
*e = 2
|
|
case "center":
|
|
*e = 3
|
|
case "inside":
|
|
*e = 4
|
|
case "outside":
|
|
*e = 5
|
|
}
|
|
return nil
|
|
}
|
|
func (m ST_AlignV) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
return e.EncodeElement(m.String(), start)
|
|
}
|
|
func (m *ST_AlignV) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if cd, ok := tok.(xml.CharData); !ok {
|
|
return fmt.Errorf("expected char data, got %T", tok)
|
|
} else {
|
|
switch string(cd) {
|
|
case "":
|
|
*m = 0
|
|
case "top":
|
|
*m = 1
|
|
case "bottom":
|
|
*m = 2
|
|
case "center":
|
|
*m = 3
|
|
case "inside":
|
|
*m = 4
|
|
case "outside":
|
|
*m = 5
|
|
}
|
|
}
|
|
tok, err = d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("expected end element, got %v", tok)
|
|
}
|
|
func (m ST_AlignV) String() string {
|
|
switch m {
|
|
case 0:
|
|
return ""
|
|
case 1:
|
|
return "top"
|
|
case 2:
|
|
return "bottom"
|
|
case 3:
|
|
return "center"
|
|
case 4:
|
|
return "inside"
|
|
case 5:
|
|
return "outside"
|
|
}
|
|
return ""
|
|
}
|
|
func (m ST_AlignV) Validate() error {
|
|
return m.ValidateWithPath("")
|
|
}
|
|
func (m ST_AlignV) ValidateWithPath(path string) error {
|
|
switch m {
|
|
case 0, 1, 2, 3, 4, 5:
|
|
default:
|
|
return fmt.Errorf("%s: out of range value %d", path, int(m))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ST_RelFromV byte
|
|
|
|
const (
|
|
ST_RelFromVUnset ST_RelFromV = 0
|
|
ST_RelFromVMargin ST_RelFromV = 1
|
|
ST_RelFromVPage ST_RelFromV = 2
|
|
ST_RelFromVParagraph ST_RelFromV = 3
|
|
ST_RelFromVLine ST_RelFromV = 4
|
|
ST_RelFromVTopMargin ST_RelFromV = 5
|
|
ST_RelFromVBottomMargin ST_RelFromV = 6
|
|
ST_RelFromVInsideMargin ST_RelFromV = 7
|
|
ST_RelFromVOutsideMargin ST_RelFromV = 8
|
|
)
|
|
|
|
func (e ST_RelFromV) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
|
|
attr := xml.Attr{}
|
|
attr.Name = name
|
|
switch e {
|
|
case ST_RelFromVUnset:
|
|
attr.Value = ""
|
|
case ST_RelFromVMargin:
|
|
attr.Value = "margin"
|
|
case ST_RelFromVPage:
|
|
attr.Value = "page"
|
|
case ST_RelFromVParagraph:
|
|
attr.Value = "paragraph"
|
|
case ST_RelFromVLine:
|
|
attr.Value = "line"
|
|
case ST_RelFromVTopMargin:
|
|
attr.Value = "topMargin"
|
|
case ST_RelFromVBottomMargin:
|
|
attr.Value = "bottomMargin"
|
|
case ST_RelFromVInsideMargin:
|
|
attr.Value = "insideMargin"
|
|
case ST_RelFromVOutsideMargin:
|
|
attr.Value = "outsideMargin"
|
|
}
|
|
return attr, nil
|
|
}
|
|
func (e *ST_RelFromV) UnmarshalXMLAttr(attr xml.Attr) error {
|
|
switch attr.Value {
|
|
case "":
|
|
*e = 0
|
|
case "margin":
|
|
*e = 1
|
|
case "page":
|
|
*e = 2
|
|
case "paragraph":
|
|
*e = 3
|
|
case "line":
|
|
*e = 4
|
|
case "topMargin":
|
|
*e = 5
|
|
case "bottomMargin":
|
|
*e = 6
|
|
case "insideMargin":
|
|
*e = 7
|
|
case "outsideMargin":
|
|
*e = 8
|
|
}
|
|
return nil
|
|
}
|
|
func (m ST_RelFromV) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
return e.EncodeElement(m.String(), start)
|
|
}
|
|
func (m *ST_RelFromV) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
tok, err := d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if cd, ok := tok.(xml.CharData); !ok {
|
|
return fmt.Errorf("expected char data, got %T", tok)
|
|
} else {
|
|
switch string(cd) {
|
|
case "":
|
|
*m = 0
|
|
case "margin":
|
|
*m = 1
|
|
case "page":
|
|
*m = 2
|
|
case "paragraph":
|
|
*m = 3
|
|
case "line":
|
|
*m = 4
|
|
case "topMargin":
|
|
*m = 5
|
|
case "bottomMargin":
|
|
*m = 6
|
|
case "insideMargin":
|
|
*m = 7
|
|
case "outsideMargin":
|
|
*m = 8
|
|
}
|
|
}
|
|
tok, err = d.Token()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("expected end element, got %v", tok)
|
|
}
|
|
func (m ST_RelFromV) String() string {
|
|
switch m {
|
|
case 0:
|
|
return ""
|
|
case 1:
|
|
return "margin"
|
|
case 2:
|
|
return "page"
|
|
case 3:
|
|
return "paragraph"
|
|
case 4:
|
|
return "line"
|
|
case 5:
|
|
return "topMargin"
|
|
case 6:
|
|
return "bottomMargin"
|
|
case 7:
|
|
return "insideMargin"
|
|
case 8:
|
|
return "outsideMargin"
|
|
}
|
|
return ""
|
|
}
|
|
func (m ST_RelFromV) Validate() error {
|
|
return m.ValidateWithPath("")
|
|
}
|
|
func (m ST_RelFromV) ValidateWithPath(path string) error {
|
|
switch m {
|
|
case 0, 1, 2, 3, 4, 5, 6, 7, 8:
|
|
default:
|
|
return fmt.Errorf("%s: out of range value %d", path, int(m))
|
|
}
|
|
return nil
|
|
}
|
|
func init() {
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_EffectExtent", NewCT_EffectExtent)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_Inline", NewCT_Inline)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapPath", NewCT_WrapPath)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapNone", NewCT_WrapNone)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapSquare", NewCT_WrapSquare)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapTight", NewCT_WrapTight)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapThrough", NewCT_WrapThrough)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapTopBottom", NewCT_WrapTopBottom)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_PosH", NewCT_PosH)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_PosV", NewCT_PosV)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_Anchor", NewCT_Anchor)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_TxbxContent", NewCT_TxbxContent)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_TextboxInfo", NewCT_TextboxInfo)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_LinkedTextboxInformation", NewCT_LinkedTextboxInformation)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingShape", NewCT_WordprocessingShape)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_GraphicFrame", NewCT_GraphicFrame)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingContentPartNonVisual", NewCT_WordprocessingContentPartNonVisual)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingContentPart", NewCT_WordprocessingContentPart)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingGroup", NewCT_WordprocessingGroup)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingCanvas", NewCT_WordprocessingCanvas)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wpc", NewWpc)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wgp", NewWgp)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wsp", NewWsp)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "inline", NewInline)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "anchor", NewAnchor)
|
|
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "EG_WrapType", NewEG_WrapType)
|
|
}
|