mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 13:56:32 +08:00
1 parent
e222cddabb
commit
aab5d40f93
24 files changed
+68
-74
No files matched your search
@@ -95,12 +95,6 @@ func NewTarget(name string) (*Target, error) {
|
||||
return &Target{name: name, info: info}, nil
|
||||
}
|
||||
|
||||
// Name 返回目标绝对路径
|
||||
// 返回: string 文件路径
|
||||
func (t *Target) Name() string {
|
||||
return t.name
|
||||
}
|
||||
|
||||
// check 检查目标是否保持最近确认的状态
|
||||
// 返回: error 文件状态错误
|
||||
func (t *Target) check() error {
|
||||
|
||||
+10
-10
@@ -481,7 +481,7 @@ func (s *Session) Document(index int) (*Session, error) {
|
||||
reader := s.Reader
|
||||
if s.editor != nil {
|
||||
var err error
|
||||
reader, err = s.editor.Reader()
|
||||
reader, err = s.editor.Reader(context.Background())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -519,7 +519,7 @@ func (s *Session) DocumentVersion(id string) (*Session, error) {
|
||||
reader := s.Reader
|
||||
if s.editor != nil {
|
||||
var err error
|
||||
reader, err = s.editor.Reader()
|
||||
reader, err = s.editor.Reader(context.Background())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -1802,7 +1802,7 @@ func (e *businessEngine) documentInvoices(args []platformValue) (any, error) {
|
||||
// 返回: *ofdgo.Reader 当前读取器, func() 快照释放函数, error 快照错误
|
||||
func (e *businessEngine) currentInvoiceReader() (*ofdgo.Reader, func(), error) {
|
||||
if e.currentEditor != nil {
|
||||
r, err := e.currentEditor.Reader()
|
||||
r, err := e.currentEditor.Reader(e.operationContext())
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -2017,7 +2017,7 @@ func (e *businessEngine) validateInvoiceDraft(ctx context.Context, request invoi
|
||||
if source.Kind == "" {
|
||||
source = request.Source
|
||||
}
|
||||
view, err := editor.ReaderContext(ctx)
|
||||
view, err := editor.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -2204,7 +2204,7 @@ func (e *businessEngine) applyInvoiceBatch(ctx context.Context, editor *ofdgo.Ed
|
||||
}
|
||||
report, err := ofdgo.DecodeInvoices(ctx, data)
|
||||
if request.Source.Kind == "tag" && len(report.Invoices) == 0 {
|
||||
view, viewErr := editor.ReaderContext(ctx)
|
||||
view, viewErr := editor.Reader(ctx)
|
||||
if viewErr != nil {
|
||||
return result, viewErr
|
||||
}
|
||||
@@ -5764,7 +5764,7 @@ func (e *businessEngine) documentVersions(args []platformValue) (any, error) {
|
||||
reader := e.currentSession.Reader
|
||||
if e.currentEditor != nil {
|
||||
var err error
|
||||
reader, err = e.currentEditor.Reader()
|
||||
reader, err = e.currentEditor.Reader(e.operationContext())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -6148,7 +6148,7 @@ func (e *businessEngine) exportVersion(args []platformValue) (any, error) {
|
||||
reader := e.currentSession.Reader
|
||||
if e.currentEditor != nil {
|
||||
var err error
|
||||
reader, err = e.currentEditor.ReaderContext(ctx)
|
||||
reader, err = e.currentEditor.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -6415,7 +6415,7 @@ func (e *businessEngine) syncEditorPageIDs(index int, content *ofdgo.PageContent
|
||||
// 入参: editor 编辑文档, annotations 是否显示注解
|
||||
// 返回: editorInfo 文档信息, error 错误信息
|
||||
func (e *businessEngine) previewEditor(editor *ofdgo.Editor, annotations bool) (editorInfo, error) {
|
||||
reader, err := editor.Reader()
|
||||
reader, err := editor.Reader(e.operationContext())
|
||||
if err != nil {
|
||||
return editorInfo{}, err
|
||||
}
|
||||
@@ -7075,7 +7075,7 @@ func (e *businessEngine) previewSignatureSeal(args []platformValue) (any, error)
|
||||
if _, err := editor.AddPage(seal.Width, seal.Height); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
reader, err := editor.Reader()
|
||||
reader, err := editor.Reader(e.operationContext())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -7314,7 +7314,7 @@ func (e *businessEngine) saveEditor(editor *ofdgo.Editor, args []platformValue)
|
||||
ctx = e.newOutputContext(args[4])
|
||||
}
|
||||
if len(args) > 2 && !args[2].IsNull() && !args[2].IsUndefined() {
|
||||
_, err = editor.WritePagesToWithOptions(ctx, writer, e.indexesFromJS(args[2]), options)
|
||||
_, err = editor.WritePagesTo(ctx, writer, e.indexesFromJS(args[2]), options)
|
||||
} else {
|
||||
_, err = editor.WriteToWithOptions(ctx, writer, options)
|
||||
}
|
||||
|
||||
@@ -102,10 +102,12 @@ func (e *Editor) WriteToWithOptions(ctx context.Context, writer io.Writer, optio
|
||||
return snapshot.WriteTo(convertWriter{ctx: ctx, writer: writer, count: &count})
|
||||
}
|
||||
|
||||
// WritePagesToWithOptions 按指定顺序另存页面,仅为所选页面准备资源和压缩计划
|
||||
// WritePagesTo 按指定顺序另存页面,仅为所选页面准备资源和压缩计划
|
||||
// 保留关联资源、目录、注释和签章外观,生成新文档标识,不改变原文档和撤销记录
|
||||
// 签章外观不代表原签名在导出文档中仍有效,页码不可重复或为空
|
||||
// 入参: ctx 取消上下文, writer 输出流, indexes 零基页码, options 输出配置
|
||||
// 返回: int64 已写入字节数, error 错误信息
|
||||
func (e *Editor) WritePagesToWithOptions(ctx context.Context, writer io.Writer, indexes []int, options WriteOptions) (int64, error) {
|
||||
func (e *Editor) WritePagesTo(ctx context.Context, writer io.Writer, indexes []int, options WriteOptions) (int64, error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@@ -116,7 +118,7 @@ func (e *Editor) WritePagesToWithOptions(ctx context.Context, writer io.Writer,
|
||||
snapshot.OnWriteProgress = editorProgress(e.OnWriteProgress).withContext(ctx)
|
||||
snapshot.output = &outputOptimization{ctx: ctx, options: options.Compression}
|
||||
var count int64
|
||||
return snapshot.WritePagesTo(convertWriter{ctx: ctx, writer: writer, count: &count}, indexes)
|
||||
return snapshot.writePagesTo(convertWriter{ctx: ctx, writer: writer, count: &count}, indexes)
|
||||
}
|
||||
|
||||
// outputSnapshot 创建只读输出配置,原签名存在时仅调整ZIP封装
|
||||
|
||||
+1
-1
@@ -310,7 +310,7 @@ func Convert(ctx context.Context, input *Input, output io.Writer, options Conver
|
||||
if options.Pages == nil {
|
||||
_, err = editor.WriteToWithOptions(ctx, writer, WriteOptions{Compression: options.Compression})
|
||||
} else {
|
||||
_, err = editor.WritePagesToWithOptions(ctx, writer, indices, WriteOptions{Compression: options.Compression})
|
||||
_, err = editor.WritePagesTo(ctx, writer, indices, WriteOptions{Compression: options.Compression})
|
||||
}
|
||||
return report, err
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ func (e *Editor) AnnotationTexts(index int, id string) ([]string, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -548,7 +548,7 @@ func (e *Editor) annotationScope(page int, path ObjectPath) (*Reader, *Renderer,
|
||||
return nil, nil, nil, nil, err
|
||||
}
|
||||
root.setStates(e.source.annotationStates[e.pages[page].ID+"/"+editorResourceID(path.Annotation)])
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -947,7 +947,7 @@ func (e *Editor) objectBounds(page int, objects []GraphicObject) ([]Box, error)
|
||||
return nil, fmt.Errorf("object %q cannot be arranged: %w", editorObjectID(object), capability.editError())
|
||||
}
|
||||
}
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ func (e *Editor) compositeScope(page int, path ObjectPath) (*Reader, *Renderer,
|
||||
return nil, nil, nil, nil, err
|
||||
}
|
||||
root.setStates(object.CompositeGraphicUnit.states)
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ package ofdgo
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
basegeom "github.com/xiaoqidun/ofdgo/internal/base/geom"
|
||||
@@ -217,7 +218,7 @@ func (e *Editor) pasteCompositeSelection(selection *CompositeSelection, paste fu
|
||||
if err := e.prepareSourceIDs(); err != nil {
|
||||
return err
|
||||
}
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ func (e *Editor) AddDocumentContext(ctx context.Context, title string, width, he
|
||||
break
|
||||
}
|
||||
}
|
||||
createdReader, err := created.ReaderContext(ctx)
|
||||
createdReader, err := created.Reader(ctx)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ func (e *Editor) changeFont(ctx context.Context, id string, mode FontMode, file
|
||||
if err := ctx.Err(); err != nil {
|
||||
return err
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -156,7 +156,7 @@ func (e *Editor) ProcessFontsWithOptions(ctx context.Context, options FontProces
|
||||
if err := progress("prepare", 0, 0); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ package ofdgo
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"maps"
|
||||
@@ -48,7 +49,7 @@ func (e *Editor) GroupObjects(page int, ids []string) (id string, err error) {
|
||||
return "", fmt.Errorf("grouping requires consecutive objects in the same container")
|
||||
}
|
||||
}
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ func (r *Reader) InvoiceCapabilities(ctx context.Context, source InvoiceSource,
|
||||
func (e *Editor) GenerateInvoicePages(ctx context.Context, source InvoiceSource, index int, layout InvoiceLayout) error {
|
||||
ctx = invoiceWriteContext(ctx)
|
||||
return e.Transaction(func(next *Editor) error {
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -252,7 +252,7 @@ func (e *Editor) InvoicesContext(ctx context.Context) (InvoiceReport, error) {
|
||||
if ctx == nil {
|
||||
ctx = context.Background()
|
||||
}
|
||||
r, err := e.ReaderContext(ctx)
|
||||
r, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return InvoiceReport{}, err
|
||||
}
|
||||
@@ -374,7 +374,7 @@ func (e *Editor) UpdateInvoice(ctx context.Context, source InvoiceSource, digest
|
||||
return err
|
||||
}
|
||||
result = InvoiceUpdateResult{Source: updated, Digest: InvoiceDigest(actual), Synchronized: true}
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -411,7 +411,7 @@ func (e *Editor) UpdateInvoice(ctx context.Context, source InvoiceSource, digest
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -611,7 +611,7 @@ func (e *Editor) DeleteInvoice(ctx context.Context, source InvoiceSource, digest
|
||||
ctx = context.Background()
|
||||
}
|
||||
return e.Transaction(func(next *Editor) error {
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -830,7 +830,7 @@ func (e *Editor) SetInvoiceBindings(ctx context.Context, source InvoiceSource, i
|
||||
ctx = context.Background()
|
||||
}
|
||||
return e.Transaction(func(next *Editor) error {
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1190,7 +1190,7 @@ func invoiceBindingCoverage(before, after Invoice, bindings []InvoiceBinding) er
|
||||
// 入参: ctx 取消上下文, ids 页面标识
|
||||
// 返回: []invoiceOwnedPage 按指定顺序排列的摘要, error 页面或读取错误
|
||||
func (e *Editor) invoiceOwnedPages(ctx context.Context, ids []string) ([]invoiceOwnedPage, error) {
|
||||
r, err := e.ReaderContext(ctx)
|
||||
r, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -1233,7 +1233,7 @@ func (e *Editor) invoiceOwnedPages(ctx context.Context, ids []string) ([]invoice
|
||||
// 入参: ctx 取消上下文, source 来源, index 来源内发票索引, layout 排版选项
|
||||
// 返回: error 关联或提交错误
|
||||
func (e *Editor) markInvoicePages(ctx context.Context, source InvoiceSource, index int, layout InvoiceLayout) error {
|
||||
r, err := e.ReaderContext(ctx)
|
||||
r, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -331,7 +331,7 @@ func (e *Editor) editLayerPage(page int, edit func(*Reader, []byte, *editorXML)
|
||||
if _, err := e.page(page); err != nil {
|
||||
return err
|
||||
}
|
||||
r, err := e.Reader()
|
||||
r, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ type resourceImageMaskKey struct {
|
||||
// 入参: ctx 取消上下文
|
||||
// 返回: []ResourceInfo 资源及引用位置, error 快照或结构错误
|
||||
func (e *Editor) Resources(ctx context.Context) ([]ResourceInfo, error) {
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -108,7 +108,7 @@ func (e *Editor) ImportMedia(ctx context.Context, kind, format string, data []by
|
||||
if kind != "Audio" && kind != "Video" || len(data) == 0 {
|
||||
return "", fmt.Errorf("nonempty Audio or Video resource required")
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -237,7 +237,7 @@ func (e *Editor) DeleteResource(ctx context.Context, kind, id string) error {
|
||||
// 入参: ctx 取消上下文, kind 资源类型, id 标识, replace 替换操作,nil表示删除, data 附件替换数据
|
||||
// 返回: error 引用、结构或提交错误
|
||||
func (e *Editor) changeResource(ctx context.Context, kind, id string, replace func(*resourceCatalog, ResourceInfo, map[string][]byte) error, data []byte) error {
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -272,7 +272,7 @@ func (e *Editor) changeResource(ctx context.Context, kind, id string, replace fu
|
||||
if working.Revision() == revision {
|
||||
return ctx.Err()
|
||||
}
|
||||
reader, err = working.ReaderContext(ctx)
|
||||
reader, err = working.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ func (e *Editor) importResourceStyle(ctx context.Context, create func(*Editor) (
|
||||
// 入参: ctx 取消上下文
|
||||
// 返回: *Reader 包含待注册字体、颜色空间及参数依赖的独立快照, error 读取或隔离错误
|
||||
func (e *Editor) resourceStyleReader(ctx context.Context) (*Reader, error) {
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil || len(e.resources) == 0 {
|
||||
return reader, err
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ func (e *Editor) selectionGeometry(page int, objects, annotations []string) ([]B
|
||||
if err != nil {
|
||||
return nil, nil, Box{}, err
|
||||
}
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, nil, Box{}, err
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import (
|
||||
// Structure 获取当前编辑状态的标引,包括页面和图元删除后的引用调整
|
||||
// 返回: []Structure 标引结构, error 快照或解析错误
|
||||
func (e *Editor) Structure() ([]Structure, error) {
|
||||
r, err := e.Reader()
|
||||
r, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -397,7 +397,7 @@ func (e *Editor) editStructureContext(ctx context.Context, index int, edit func(
|
||||
}
|
||||
tag := tags[index]
|
||||
name := e.source.reader.ResPath(tag.FileLoc)
|
||||
snapshot, err := e.ReaderContext(ctx)
|
||||
snapshot, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -532,7 +532,7 @@ func (e *Editor) validateStructureReferencesContext(ctx context.Context, root *S
|
||||
}
|
||||
if r == nil {
|
||||
var err error
|
||||
r, err = e.ReaderContext(ctx)
|
||||
r, err = e.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ package ofdgo
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"path"
|
||||
@@ -201,7 +202,7 @@ func (e *Editor) CreateTemplateFromPage(page int, name, zOrder string) (string,
|
||||
if err := e.prepareSourceIDs(); err != nil {
|
||||
return err
|
||||
}
|
||||
r, err := e.Reader()
|
||||
r, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -351,7 +352,7 @@ func (e *Editor) ReplaceTemplateFromPage(id string, page int) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r, err := e.Reader()
|
||||
r, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -451,7 +452,7 @@ func editorTemplateDefinition(reader *Reader, id string) (TemplatePage, error) {
|
||||
// 返回: error 读取、修改或提交错误
|
||||
func (e *Editor) editTemplateDefinition(id string, edit func(*Reader, []byte, *editorXML) ([]byte, error)) error {
|
||||
return e.Transaction(func(_ *Editor) error {
|
||||
r, err := e.Reader()
|
||||
r, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ package ofdgo
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
basegeom "github.com/xiaoqidun/ofdgo/internal/base/geom"
|
||||
@@ -329,7 +330,7 @@ func (e *Editor) transformMatrix(object GraphicObject, matrix Matrix) (GraphicOb
|
||||
return transformEditorMatrix(object, matrix), nil
|
||||
}
|
||||
origin := e.objectOrigin(object.ImageObject.ID)
|
||||
reader, err := e.Reader()
|
||||
reader, err := e.reader(nil)
|
||||
if err != nil {
|
||||
return GraphicObject{}, err
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ func (e *Editor) DocumentVersionsContext(ctx context.Context) ([]DocumentVersion
|
||||
if e.source == nil {
|
||||
return nil, nil
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -257,7 +257,7 @@ func (e *Editor) SetDefaultVersionContext(ctx context.Context, id string) error
|
||||
}
|
||||
return fmt.Errorf("document version not found: %s", id)
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -314,7 +314,7 @@ func (e *Editor) RenameVersionContext(ctx context.Context, id, name string) erro
|
||||
if e.source == nil {
|
||||
return fmt.Errorf("document version not found: %s", id)
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ func (e *Editor) AddWatermarks(ctx context.Context, indexes []int, object Graphi
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
reader, err := preview.Reader()
|
||||
reader, err := preview.reader(nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -650,7 +650,7 @@ func (e *Editor) layoutInvoiceReferenceSlots(ctx context.Context, bindings []Inv
|
||||
if original.String() != before {
|
||||
return fmt.Errorf("invoice slot text changed")
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -857,7 +857,7 @@ func invoiceCheckReflowReferences(ctx context.Context, e *Editor, ownedPageIDs [
|
||||
}
|
||||
owned[key] = true
|
||||
}
|
||||
reader, err := e.ReaderContext(ctx)
|
||||
reader, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ func (e *Editor) ExportInvoice(ctx context.Context, source InvoiceSource) ([]byt
|
||||
if len(e.pages) == 0 {
|
||||
return e.source.reader.ExportInvoice(invoiceWriteContext(ctx), source)
|
||||
}
|
||||
r, err := e.ReaderContext(invoiceWriteContext(ctx))
|
||||
r, err := e.Reader(invoiceWriteContext(ctx))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -297,7 +297,7 @@ func (e *Editor) changeInvoiceSource(ctx context.Context, source InvoiceSource,
|
||||
return InvoiceSource{}, fmt.Errorf("invoice data limit exceeded")
|
||||
}
|
||||
if objectReference {
|
||||
r, err := e.ReaderContext(ctx)
|
||||
r, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return InvoiceSource{}, err
|
||||
}
|
||||
@@ -526,7 +526,7 @@ func (e *Editor) importInvoiceReferences(ctx context.Context, data []byte, optio
|
||||
}
|
||||
var source InvoiceSource
|
||||
err := e.Transaction(func(next *Editor) error {
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -546,7 +546,7 @@ func (e *Editor) importInvoiceReferences(ctx context.Context, data []byte, optio
|
||||
if err := next.editStructure(index, func(_ []byte, _ *editorXML, _ CustomTag) ([]byte, error) { return bytes.Clone(data), nil }); err != nil {
|
||||
return err
|
||||
}
|
||||
r, err = next.ReaderContext(ctx)
|
||||
r, err = next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -631,7 +631,7 @@ func (e *Editor) editInvoiceReferences(ctx context.Context, source InvoiceSource
|
||||
}
|
||||
var result InvoiceUpdateResult
|
||||
err := e.Transaction(func(next *Editor) error {
|
||||
r, err := next.ReaderContext(ctx)
|
||||
r, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -786,7 +786,7 @@ func (e *Editor) editInvoiceReferences(ctx context.Context, source InvoiceSource
|
||||
if err := next.SyncInvoicePages(ctx, invoice, singles); err != nil {
|
||||
return err
|
||||
}
|
||||
view, err := next.ReaderContext(ctx)
|
||||
view, err := next.Reader(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -865,7 +865,7 @@ func (e *Editor) setInvoiceReferences(ctx context.Context, source InvoiceSource,
|
||||
if index != 0 {
|
||||
return InvoiceUpdateResult{}, fmt.Errorf("invoice index out of range")
|
||||
}
|
||||
r, err := e.ReaderContext(ctx)
|
||||
r, err := e.Reader(ctx)
|
||||
if err != nil {
|
||||
return InvoiceUpdateResult{}, err
|
||||
}
|
||||
|
||||
+4
-10
@@ -239,13 +239,13 @@ func (e *Editor) WriteTo(writer io.Writer) (int64, error) {
|
||||
return e.writePlaintext(writer)
|
||||
}
|
||||
|
||||
// WritePagesTo 按指定顺序将页面另存为独立OFD,不修改当前文档或撤销记录
|
||||
// writePagesTo 按指定顺序将页面另存为独立OFD,不修改当前文档或撤销记录
|
||||
// 保留描述信息并生成新文档标识,迁移相关资源、目录、注释和签章外观,移除指向未选页面的跳转
|
||||
// 快照只准备所选页面,关联引用由页面导入流程统一筛选,沿用当前后端及字体来源
|
||||
// 签名凭据不代表另存文件验签有效;进度与取消复用OnWriteProgress,另含snapshot、ids和commit阶段
|
||||
// 入参: writer 输出流, indexes 从0开始的页面索引,不可重复或为空
|
||||
// 返回: int64 已写入字节数, error 错误信息
|
||||
func (e *Editor) WritePagesTo(writer io.Writer, indexes []int) (int64, error) {
|
||||
func (e *Editor) writePagesTo(writer io.Writer, indexes []int) (int64, error) {
|
||||
ctx := context.Background()
|
||||
if e.output != nil {
|
||||
ctx = e.output.ctx
|
||||
@@ -307,16 +307,10 @@ func (e *Editor) WritePagesTo(writer io.Writer, indexes []int) (int64, error) {
|
||||
|
||||
// Reader 获取当前文档的独立内存快照,不进行ZIP压缩,后续修改不影响已有快照
|
||||
// 返回的Reader可用于现有渲染、搜索和导出接口,新增资源仅包含实际引用的部分,二进制数据内部共享只读
|
||||
// 返回: *Reader 阅读器, error 错误信息
|
||||
func (e *Editor) Reader() (*Reader, error) {
|
||||
return e.reader(nil)
|
||||
}
|
||||
|
||||
// ReaderContext 获取可取消的独立内存快照,失败时不返回部分结果
|
||||
// 快照保持Reader的资源所有权规则,不改变当前编辑状态或撤销记录
|
||||
// 失败时不返回部分结果,不改变当前编辑状态或撤销记录
|
||||
// 入参: ctx 取消上下文
|
||||
// 返回: *Reader 阅读器, error 准备或取消错误
|
||||
func (e *Editor) ReaderContext(ctx context.Context) (*Reader, error) {
|
||||
func (e *Editor) Reader(ctx context.Context) (*Reader, error) {
|
||||
return e.readerContext(ctx, nil)
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user