feat(转换能力): 新增PDF解析、可编辑OFD转换及WebUI打开能力
build.yaml / build (push) Successful in 39s

This commit is contained in:
xiaoqidun committed 2026-09-24 16:18:38 +08:00
1 parent 697a059162
commit 86330dddd7
8 files changed
+606 -12

No files matched your search

+20
View File
@@ -156,6 +156,7 @@ func awaitExport(fn js.Value, args ...any) error {
// RunWASM 注册浏览器WASM接口并阻塞运行
func RunWASM() {
registerCallback("ofdgoOpen", openDocument)
registerCallback("ofdgoConvertPDF", convertPDFDocument)
registerCallback("ofdgoConfigure", configureDocument)
registerCallback("ofdgoDocumentInfo", documentInfo)
registerCallback("ofdgoVerifySignatures", verifySignatures)
@@ -311,6 +312,25 @@ func safeCall(fn func([]js.Value) (any, error), args []js.Value) (data any, err
return fn(args)
}
// convertPDFDocument 通过库转换PDF,不替换当前文档会话
// 入参: args PDF数据
// 返回: any OFD数据, error 错误信息
func convertPDFDocument(args []js.Value) (any, error) {
if len(args) != 1 {
return nil, fmt.Errorf("missing PDF data")
}
data, err := bytesFromJS(args[0])
if err != nil {
return nil, err
}
var output bytes.Buffer
_, err = ofdgo.ConvertPDF(context.Background(), bytes.NewReader(data), int64(len(data)), &output, ofdgo.PDFImportOptions{})
if err != nil {
return nil, err
}
return successResult(map[string]any{"bytes": bytesToJS(output.Bytes())}), nil
}
// openDocument 打开OFD文档
// 入参: args 浏览器参数
// 返回: any 文档信息, error 错误信息