feat(转换能力): 修复水印并优化字体与导入
build.yaml / build (push) Successful in 52s

This commit is contained in:
xiaoqidun committed 2026-10-04 16:29:30 +08:00
1 parent 290fc57c34
commit 60eb5ac6a1
12 files changed
+504 -87

No files matched your search

+20
View File
@@ -16,6 +16,7 @@ package ofdgo
import (
"cmp"
"context"
"fmt"
"reflect"
"slices"
@@ -73,6 +74,16 @@ func (e *Editor) Objects(page int, ids []string) ([]GraphicObject, error) {
// 入参: page 目标页面索引, objects 对象快照, dx、dy 毫米位移
// 返回: []string 按绘制顺序排列的新对象标识, error 错误信息
func (e *Editor) CopyObjects(page int, objects []GraphicObject, dx, dy float64) ([]string, error) {
return e.CopyObjectsContext(context.Background(), page, objects, dx, dy)
}
// CopyObjectsContext 复制对象快照,准备期间取消不提交对象或撤销记录
// 入参: ctx 取消上下文, page 目标页, objects 对象快照, dx、dy 毫米位移
// 返回: []string 新对象标识, error 校验或取消错误
func (e *Editor) CopyObjectsContext(ctx context.Context, page int, objects []GraphicObject, dx, dy float64) ([]string, error) {
if err := ctx.Err(); err != nil {
return nil, err
}
if !finite(dx) || !finite(dy) {
return nil, fmt.Errorf("copy requires finite offsets")
}
@@ -86,12 +97,18 @@ func (e *Editor) CopyObjects(page int, objects []GraphicObject, dx, dy float64)
if err := e.prepareSourceIDs(); err != nil {
return nil, err
}
if err := ctx.Err(); err != nil {
return nil, err
}
prepared := make([]GraphicObject, len(objects))
origins := make([]*editorObjectOrigin, len(objects))
result := make([]string, len(objects))
maximum := e.maxID + len(objects)
validation := &editorValidation{Editor: e}
for i, object := range objects {
if err := ctx.Err(); err != nil {
return nil, err
}
result[i] = strconv.Itoa(e.maxID + i + 1)
object, err := validation.prepareCopiedObject(result[i], object)
if err != nil {
@@ -111,6 +128,9 @@ func (e *Editor) CopyObjects(page int, objects []GraphicObject, dx, dy float64)
return nil, err
}
}
if err := ctx.Err(); err != nil {
return nil, err
}
e.maxID = maximum
for i, origin := range origins {
if origin != nil {