mirror of
https://github.com/fumiama/go-docx.git
synced 2026-06-05 15:50:24 +08:00
103 lines
2.4 KiB
Go
103 lines
2.4 KiB
Go
package docx
|
||
|
||
import "encoding/xml"
|
||
|
||
// RunStyle contains styling for a run
|
||
type RunStyle struct {
|
||
XMLName xml.Name `xml:"w:rStyle,omitempty"`
|
||
Val string `xml:"w:val,attr"`
|
||
}
|
||
|
||
// Style contains styling for a paragraph
|
||
type Style struct {
|
||
XMLName xml.Name `xml:"w:pStyle,omitempty"`
|
||
Val string `xml:"w:val,attr"`
|
||
}
|
||
|
||
// Color contains the sound of music. :D
|
||
// I'm kidding. It contains the color
|
||
type Color struct {
|
||
XMLName xml.Name `xml:"w:color,omitempty"`
|
||
Val string `xml:"w:val,attr"`
|
||
}
|
||
|
||
// Size contains the font size
|
||
type Size struct {
|
||
XMLName xml.Name `xml:"w:sz,omitempty"`
|
||
Val string `xml:"w:val,attr"`
|
||
}
|
||
|
||
// Bold ...
|
||
type Bold struct {
|
||
XMLName xml.Name `xml:"w:b,omitempty"`
|
||
}
|
||
|
||
// Italic ...
|
||
type Italic struct {
|
||
XMLName xml.Name `xml:"w:i,omitempty"`
|
||
}
|
||
|
||
// Underline ...
|
||
type Underline struct {
|
||
XMLName xml.Name `xml:"w:u,omitempty"`
|
||
Val string `xml:"w:val,attr,omitempty"`
|
||
}
|
||
|
||
// Highlight ...
|
||
type Highlight struct {
|
||
XMLName xml.Name `xml:"w:highlight,omitempty"`
|
||
Val string `xml:"w:val,attr,omitempty"`
|
||
}
|
||
|
||
// Kern ...
|
||
type Kern struct {
|
||
XMLName xml.Name `xml:"w:kern,omitempty"`
|
||
Val int64 `xml:"w:val,attr,omitempty"`
|
||
}
|
||
|
||
// Justification contains the way of the horizonal alignment
|
||
//
|
||
// w:jc 属性的取值可以是以下之一:
|
||
// start:左对齐。
|
||
// center:居中对齐。
|
||
// end:右对齐。
|
||
// both:两端对齐。
|
||
// distribute:分散对齐。
|
||
type Justification struct {
|
||
XMLName xml.Name `xml:"w:jc,omitempty"`
|
||
Val string `xml:"w:val,attr"`
|
||
}
|
||
|
||
// Shade is an element that represents a shading pattern applied to a document element.
|
||
type Shade struct {
|
||
XMLName xml.Name `xml:"w:shd,omitempty"`
|
||
Val string `xml:"w:val,attr,omitempty"`
|
||
Color string `xml:"w:color,attr,omitempty"`
|
||
Fill string `xml:"w:fill,attr,omitempty"`
|
||
ThemeFill string `xml:"w:themeFill,attr,omitempty"`
|
||
ThemeFillTint string `xml:"w:themeFillTint,attr,omitempty"`
|
||
}
|
||
|
||
// UnmarshalXML ...
|
||
func (s *Shade) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
||
for _, attr := range start.Attr {
|
||
switch attr.Name.Local {
|
||
case "val":
|
||
s.Val = attr.Value
|
||
case "color":
|
||
s.Color = attr.Value
|
||
case "fill":
|
||
s.Fill = attr.Value
|
||
case "themeFill":
|
||
s.ThemeFill = attr.Value
|
||
case "themeFillTint":
|
||
s.ThemeFillTint = attr.Value
|
||
default:
|
||
// ignore other attributes
|
||
}
|
||
}
|
||
// Consume the end element
|
||
_, err := d.Token()
|
||
return err
|
||
}
|