稳定性: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
常见错误
批量参数应直接传 reportOptions[],不要传 { reportOptions }[]。收到忙碌错误后等待上一批结束,不要并发重试。
