mirror of
https://github.com/fumiama/go-docx.git
synced 2026-06-07 16:50:24 +08:00
refactor: Run use Children
This commit is contained in:
@@ -93,54 +93,58 @@ func (p *Paragraph) String() string {
|
||||
}
|
||||
sb.WriteByte(')')
|
||||
case *Run:
|
||||
switch {
|
||||
case o.Text != nil:
|
||||
sb.WriteString(o.Text.Text)
|
||||
case o.Drawing != nil:
|
||||
if o.Drawing.Inline != nil && o.Drawing.Inline.Graphic != nil && o.Drawing.Inline.Graphic.GraphicData != nil && o.Drawing.Inline.Graphic.GraphicData.Pic != nil {
|
||||
sb.WriteString("
|
||||
if o.Drawing.Inline.Graphic.GraphicData.Pic.BlipFill != nil {
|
||||
tgt, err := p.file.ReferTarget(o.Drawing.Inline.Graphic.GraphicData.Pic.BlipFill.Blip.Embed)
|
||||
if err != nil {
|
||||
sb.WriteString(err.Error())
|
||||
} else {
|
||||
h := md5.Sum(p.file.Media(tgt[6:]).Data)
|
||||
sb.WriteString(hex.EncodeToString(h[:]))
|
||||
for _, c := range o.Children {
|
||||
switch x := c.(type) {
|
||||
case *Text:
|
||||
sb.WriteString(x.Text)
|
||||
case *WTab:
|
||||
sb.WriteByte('\t')
|
||||
case *Drawing:
|
||||
if x.Inline != nil && x.Inline.Graphic != nil && x.Inline.Graphic.GraphicData != nil && x.Inline.Graphic.GraphicData.Pic != nil {
|
||||
sb.WriteString("
|
||||
if o.Drawing.Anchor.Graphic.GraphicData.Pic.BlipFill != nil {
|
||||
tgt, err := p.file.ReferTarget(o.Drawing.Anchor.Graphic.GraphicData.Pic.BlipFill.Blip.Embed)
|
||||
if err != nil {
|
||||
sb.WriteString(err.Error())
|
||||
} else {
|
||||
h := md5.Sum(p.file.Media(tgt[6:]).Data)
|
||||
sb.WriteString(hex.EncodeToString(h[:]))
|
||||
sb.WriteString("](")
|
||||
if x.Inline.Graphic.GraphicData.Pic.BlipFill != nil {
|
||||
tgt, err := p.file.ReferTarget(x.Inline.Graphic.GraphicData.Pic.BlipFill.Blip.Embed)
|
||||
if err != nil {
|
||||
sb.WriteString(err.Error())
|
||||
} else {
|
||||
h := md5.Sum(p.file.Media(tgt[6:]).Data)
|
||||
sb.WriteString(hex.EncodeToString(h[:]))
|
||||
}
|
||||
}
|
||||
sb.WriteByte(')')
|
||||
continue
|
||||
}
|
||||
if x.Anchor != nil && x.Anchor.Graphic != nil && x.Anchor.Graphic.GraphicData != nil && x.Anchor.Graphic.GraphicData.Pic != nil {
|
||||
sb.WriteString("
|
||||
if x.Anchor.Graphic.GraphicData.Pic.BlipFill != nil {
|
||||
tgt, err := p.file.ReferTarget(x.Anchor.Graphic.GraphicData.Pic.BlipFill.Blip.Embed)
|
||||
if err != nil {
|
||||
sb.WriteString(err.Error())
|
||||
} else {
|
||||
h := md5.Sum(p.file.Media(tgt[6:]).Data)
|
||||
sb.WriteString(hex.EncodeToString(h[:]))
|
||||
}
|
||||
}
|
||||
sb.WriteByte(')')
|
||||
}
|
||||
sb.WriteByte(')')
|
||||
}
|
||||
}
|
||||
case *RunProperties:
|
||||
|
||||
Reference in New Issue
Block a user