diff --git a/structeffects.go b/structeffects.go index 4689d85..abb5062 100644 --- a/structeffects.go +++ b/structeffects.go @@ -49,6 +49,12 @@ type Highlight struct { 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 属性的取值可以是以下之一: diff --git a/structpara.go b/structpara.go index f44232c..d4aa430 100644 --- a/structpara.go +++ b/structpara.go @@ -25,6 +25,7 @@ import ( "encoding/hex" "encoding/xml" "io" + "strconv" "strings" ) @@ -33,6 +34,7 @@ type ParagraphProperties struct { XMLName xml.Name `xml:"w:pPr,omitempty"` Justification *Justification Shade *Shade + Kern *Kern } // UnmarshalXML ... @@ -56,6 +58,17 @@ func (p *ParagraphProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElemen return err } p.Shade = &value + case "kern": + var value Kern + v := getAtt(tt.Attr, "val") + if v == "" { + continue + } + value.Val, err = strconv.ParseInt(v, 10, 64) + if err != nil { + return err + } + p.Kern = &value default: err = d.Skip() // skip unsupported tags if err != nil { diff --git a/structrun.go b/structrun.go index a21518e..bda46b7 100644 --- a/structrun.go +++ b/structrun.go @@ -23,6 +23,7 @@ package docx import ( "encoding/xml" "io" + "strconv" "strings" ) @@ -148,6 +149,7 @@ type RunProperties struct { RunStyle *RunStyle Style *Style Shade *Shade + Kern *Kern } // UnmarshalXML ... @@ -205,6 +207,17 @@ func (r *RunProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err return err } r.Shade = &value + case "kern": + var value Kern + v := getAtt(tt.Attr, "val") + if v == "" { + continue + } + value.Val, err = strconv.ParseInt(v, 10, 64) + if err != nil { + return err + } + r.Kern = &value default: err = d.Skip() // skip unsupported tags if err != nil {