mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-08-30 12:12:40 +08:00
This commit is contained in:
+38
-2
@@ -42,6 +42,8 @@ type apiResult struct {
|
||||
func RunWASM() {
|
||||
registerCallback("ofdgoOpen", openDocument)
|
||||
registerCallback("ofdgoRenderPage", renderPage)
|
||||
registerCallback("ofdgoExportFormats", exportFormats)
|
||||
registerCallback("ofdgoExportPage", exportPage)
|
||||
registerCallback("ofdgoExportPDF", exportPDF)
|
||||
registerCallback("ofdgoFontCandidates", fontCandidates)
|
||||
select {}
|
||||
@@ -113,7 +115,38 @@ func renderPage(args []js.Value) (any, error) {
|
||||
return currentSession.RenderPageSVG(args[0].Int())
|
||||
}
|
||||
|
||||
// exportPDF 导出OFD为PDF
|
||||
// exportFormats 获取导出格式
|
||||
// 入参: args 浏览器参数
|
||||
// 返回: any 导出格式, error 错误信息
|
||||
func exportFormats(args []js.Value) (any, error) {
|
||||
return ExportFormats(), nil
|
||||
}
|
||||
|
||||
// exportPage 导出OFD单页
|
||||
// 入参: args 浏览器参数
|
||||
// 返回: any 导出结果, error 错误信息
|
||||
func exportPage(args []js.Value) (any, error) {
|
||||
if currentSession == nil {
|
||||
return nil, fmt.Errorf("ofd document is not opened")
|
||||
}
|
||||
if len(args) < 2 {
|
||||
return nil, fmt.Errorf("missing export page arguments")
|
||||
}
|
||||
data, format, err := currentSession.ExportPage(args[0].Int(), args[1].String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return map[string]any{
|
||||
"base64": base64.StdEncoding.EncodeToString(data),
|
||||
"size": len(data),
|
||||
"format": format.Value,
|
||||
"label": format.Label,
|
||||
"extension": format.Extension,
|
||||
"mime": format.MIME,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// exportPDF 导出OFD文档为PDF
|
||||
// 入参: args 浏览器参数
|
||||
// 返回: any PDF结果, error 错误信息
|
||||
func exportPDF(args []js.Value) (any, error) {
|
||||
@@ -124,7 +157,10 @@ func exportPDF(args []js.Value) (any, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return map[string]any{"base64": base64.StdEncoding.EncodeToString(data), "size": len(data)}, nil
|
||||
return map[string]any{
|
||||
"base64": base64.StdEncoding.EncodeToString(data),
|
||||
"size": len(data),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// fontCandidates 获取字体候选名称
|
||||
|
||||
Reference in New Issue
Block a user