渲染与输出

稳定

print 与 printAll

稳定性:stable。两者都依赖报表渲染和下游打印服务,但批量方法有额外约束。

调用方式与方法签名

print(options, Vue?): Promise<unknown>
printAll(batchReportOptions, printOptions?, Vue?, showBatchPrintProgress = false): Promise<unknown>

参数与默认值

print 使用统一的 reportOptions 和 printOptions。printAll 第一参必须是非空 reportOptions[];空值或空数组抛出 PARAM_ERROR。第四参为 true 时显示批量进度。

批量方法会复制 printOptions,删除 businessId、printOffset、showPrintOffset、offsetPosition、showPrintConfPanel、viewPdf;最终提交前还会删除 page。因此当前不支持续打、指定页或指定 PDF 预览。报表按数组顺序串行处理,并在报表之间插入分页;同一时间只允许一个 printAll,否则抛出 PRINT_ALL_BUSY。

返回值与异常

Promise 最终采用打印服务结果。某个报表生成失败时抛出 REPORT_GENERATE_FAILED,对象包含失败序号和原始错误;不应把部分 HTML 当作成功结果。

最小示例

await api.printAll(
  [
    { reportCode: "sales-summary", reportVersion: "1.0.0", serviceInputs: { region: "east" } },
    { reportCode: "sales-summary", reportVersion: "1.0.0", serviceInputs: { region: "west" } },
  ],
  { useDefaultPrinter: true, checkPrinter: false },
  Vue,
  true,
);

iframe 模式差异

print / printAll 本身创建隐藏 Builder 完成输出,不是 iframe 实例方法。iframe 页面里的打印事件属于运行时消息事件。

相关 API

printOptions、运行时实例事件。

常见错误

批量参数应直接传 reportOptions[],不要传 { reportOptions }[]。收到忙碌错误后等待上一批结束,不要并发重试。