ApplyCanvasEdits¶
直接应用一个精确的 CanvasEditor SDK 批次,无需第二个 AI 模型。对于已知的移动、重新标记、样式、调整大小或明确规划的图形,优先使用此工具;设计与规划请使用 EditCanvas。请先使用 ReadCanvas 获取稳定的 ID 和修订版本。JavaScript 仅包含 editor 和 snippets:无网络/文件/定时器。最多 100 个操作/新 ID;整个批次会验证、测量真实文本、为有意义的路径添加动画、重新验证人工更改,并通过存储 ACK 一次性提交。新 ID 仅来自 editor.create/connect/group。切勿重复不确定的写入。SDK:editor.move([ids],dx,dy) 使用 WORLD 增量;editor.text(id,text,fitText?);editor.mentionUser(id,at,{userId,email,displayName?},fitText?) 插入真实人员 chip 并保留富文本;请先解析身份,切勿写入字面量 @Name 或凭空编造 ID。ReadCanvas.text 中的偏移量为 UTF-16,每个现有 chip 计为一个 U+FFFC,换行符计为一个;userMentions 报告身份和偏移量。Canvas chip 不会发送通知或授予访问权限。editor.style([ids],{fill?,stroke?,strokeWidth?,opacity?});editor.resize(id,width,height,fitText?);editor.textStyle(id,{fontSize?,fontFamily?:'sans'|'serif'|'mono',fitText?);editor.fitText(id,mode?,width?);editor.create({type:'rectangle'|'ellipse'|'text',x,y,width?,height?,text?,fontSize?,fitText?,style?}) 返回 ID;editor.connect({start:{point:{x,y},binding?:{targetId,anchor:'center'|'top'|'right'|'bottom'|'left'}},end:{point:{x,y},binding?:{targetId,anchor}},route?:'straight'|'stepped'|'smooth',text?}) 返回 ID;editor.delete([ids]);editor.group([ids]) 返回 ID;editor.ungroup(id);editor.reparent(id,parentId);editor.order([ids],'front'|'back'|'forward'|'backward')。文本适配模式默认为 grow(增长):在受限宽度下保持字体可读并增加高度。显式指定 contain(包含)则会收缩到固定几何尺寸;溢出时返回错误并拒绝。不支持媒体创建/删除或场景替换。将较长的文本内容放入 snippets 中,并在代码中引用 snippets.key。返回测量后的几何/溢出情况与当前场景,因此确定性更改无需截图;视觉设计仍应使用实际图像进行审查。
参数¶
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
document_id |
string | 是 | 已授权的 Canvas 文档 ID。 |
expected_revision |
string | 是 | 来自最新 ReadCanvas 或 RenderCanvas 的精确修订版本。 |
code |
string | 是 | 使用 editor 的有界 JavaScript;请在同一个批次中提交相关工作。 |
snippets |
object | 否 | 可选的纯文本值,在沙箱中作为 snippets 暴露。 |
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 macro3/macro