Skip to content

Commit

Permalink
🎨 改进代码样式 (#23)
Browse files Browse the repository at this point in the history
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
github-actions[bot] authored Mar 19, 2024
1 parent d744239 commit 843de6e
Showing 1 changed file with 85 additions and 85 deletions.
170 changes: 85 additions & 85 deletions structsect.go
Original file line number Diff line number Diff line change
@@ -1,85 +1,85 @@
/*
Copyright (c) 2024 mabiao0525 (马飚)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

package docx

import (
"encoding/xml"
"io"
"strings"
)

// SectPr show the properties of the document, like paper size
type SectPr struct {
XMLName xml.Name `xml:"w:sectPr,omitempty"` // properties of the document, including paper size
PgSz *PgSz `xml:"w:pgSz,omitempty"`
}

// PgSz show the paper size
type PgSz struct {
W xml.Attr `xml:"w:w,attr"` // width of paper
H xml.Attr `xml:"w:h,attr"` // high of paper
}

// UnmarshalXML ...
func (sect *SectPr) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error {
for {
t, err := d.Token()
if err == io.EOF {
break
}
if err != nil {
return err
}
if tt, ok := t.(xml.StartElement); ok {
switch tt.Name.Local {
case "pgSz":
var value PgSz
err = d.DecodeElement(&value, &tt)
if err != nil && !strings.HasPrefix(err.Error(), "expected") {
return err
}
sect.PgSz = &value
default:
err = d.Skip() // skip unsupported tags
if err != nil {
return err
}
}
}
}
return nil
}

// UnmarshalXML ...
func (pgsz *PgSz) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
var err error

for _, attr := range start.Attr {
switch attr.Name.Local {
case "w":
pgsz.W = xml.Attr{Name: xml.Name{Local: "w:w"}, Value: attr.Value}
case "h":
pgsz.H = xml.Attr{Name: xml.Name{Local: "w:w"}, Value: attr.Value}
default:
//ignore other attributes now
}
}
// Consume the end element
_, err = d.Token()
return err
}
/*
Copyright (c) 2024 mabiao0525 (马飚)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

package docx

import (
"encoding/xml"
"io"
"strings"
)

// SectPr show the properties of the document, like paper size
type SectPr struct {
XMLName xml.Name `xml:"w:sectPr,omitempty"` // properties of the document, including paper size
PgSz *PgSz `xml:"w:pgSz,omitempty"`
}

// PgSz show the paper size
type PgSz struct {
W xml.Attr `xml:"w:w,attr"` // width of paper
H xml.Attr `xml:"w:h,attr"` // high of paper
}

// UnmarshalXML ...
func (sect *SectPr) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error {
for {
t, err := d.Token()
if err == io.EOF {
break
}
if err != nil {
return err
}
if tt, ok := t.(xml.StartElement); ok {
switch tt.Name.Local {
case "pgSz":
var value PgSz
err = d.DecodeElement(&value, &tt)
if err != nil && !strings.HasPrefix(err.Error(), "expected") {
return err
}
sect.PgSz = &value
default:
err = d.Skip() // skip unsupported tags
if err != nil {
return err
}
}
}
}
return nil
}

// UnmarshalXML ...
func (pgsz *PgSz) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
var err error

for _, attr := range start.Attr {
switch attr.Name.Local {
case "w":
pgsz.W = xml.Attr{Name: xml.Name{Local: "w:w"}, Value: attr.Value}
case "h":
pgsz.H = xml.Attr{Name: xml.Name{Local: "w:w"}, Value: attr.Value}
default:
//ignore other attributes now
}
}
// Consume the end element
_, err = d.Token()
return err
}

0 comments on commit 843de6e

Please sign in to comment.