feat(标准版本): 修复裁剪字形并完善版本兼容
build.yaml / build (push) Successful in 47s

This commit is contained in:
xiaoqidun committed 2026-10-09 23:15:06 +08:00
1 parent 444c01b976
commit e9caaa4193
31 files changed
+639 -182

No files matched your search

+12 -4
View File
@@ -38,11 +38,11 @@ func packagePagePath(directory, id string) string {
return path.Join(directory, "Pages", "Page_"+id, "Content.xml")
}
// packageOFDNode 判断包索引中的标准节点,兼容旧版及省略命名空间的文档
// packageOFDNode 识别包索引中的OFD节点,兼容与父节点同命名空间的已知字段
// 入参: node XML节点, name 节点名称
// 返回: bool 是否为标准节点
// 返回: bool 是否为OFD节点
func packageOFDNode(node *editorXML, name string) bool {
return node.name.Local == name && (node.name.Space == "" || node.name.Space == ofdNamespace || node.name.Space == "http://www.ofdspec.org")
return node.name.Local == name && (classifyOFDNamespace(node.name.Space) != ofdXMLUnknown || node.parent != nil && node.name.Space == node.parent.name.Space)
}
// packageName 为新增条目分配文档内路径,不覆盖原文件或本次资源
@@ -118,6 +118,10 @@ func mergePackageResources(reader *Reader, parts map[string][]byte, doc *Documen
return "", false, err
}
target := root.child(group.name.Local)
context := root
if target != nil {
context = target
}
var content []byte
for _, node := range group.children {
if target != nil && slices.ContainsFunc(target.children, func(old *editorXML) bool {
@@ -129,6 +133,10 @@ func mergePackageResources(reader *Reader, parts map[string][]byte, doc *Documen
if err != nil {
return "", false, err
}
entry, err = editorXMLGenerated(entry, context.name.Space)
if err != nil {
return "", false, err
}
content = append(content, entry...)
}
if len(content) == 0 {
@@ -139,7 +147,7 @@ func mergePackageResources(reader *Reader, parts map[string][]byte, doc *Documen
data = editorPatchXML(data, []editorXMLPatch{editorXMLContent(data, target, content)})
continue
}
content, err = editorXMLContainer(group.name.Local, nil, content)
content, err = root.containerXML(group.name.Local, nil, content)
if err != nil {
return "", false, err
}