[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"quirekit-doc:\u002Fbuild\u002Fresources":3},{"id":4,"title":5,"body":6,"description":163,"extension":164,"keywords":165,"locale":166,"meta":167,"navigation":168,"order":169,"path":170,"section":171,"seo":172,"stem":173,"__hash__":174},"docs\u002Fbuild\u002Fresources.zh-CN.md","接入图片、字体与其他能力",{"type":7,"value":8,"toc":156},"minimark",[9,13,18,21,24,40,44,47,50,53,134,137],[10,11,12],"p",{},"编辑器能够显示一张图片，不代表它已经替你的应用保存了图片文件。完整产品还需要资源存储、字体和服务端能力。本章说明它们分别接在哪里。",[14,15,17],"h2",{"id":16},"图片内容引用与文件一起保存","图片：内容引用与文件一起保存",[10,19,20],{},"插入图片通常有两个步骤：先把图片交给存储服务，得到稳定的资源 ID；再通过内容命令把这个 ID 写进文档。显示时，由资源解析服务把 ID 转成可用的图片地址或字节。",[10,22,23],{},"临时 Blob URL 适合当前会话预览，不能作为长期存储地址。保存文档时要同时保留资源身份和图片字节。异步上传结束后，也要确认原来的插入目标仍然有效。",[10,25,26,27,31,32,35,36,39],{},"Classic 可以通过 ",[28,29,30],"code",{},"media"," 配置存储接收端（sink）和资源解析端（resolver），通过 ",[28,33,34],{},"host"," 提供文件选择等宿主能力。自建工作区则向 View 的 ",[28,37,38],{},"mediaResolver"," 提供解析服务，并给文件转换使用匹配的媒体服务。",[14,41,43],{"id":42},"字体加载完成后更新排版","字体：加载完成后更新排版",[10,45,46],{},"字体会影响文字宽度、换行和页数。加载字体后，使用已挂载 View 的字体度量刷新能力更新布局；只修改界面 CSS 字体并不足以更新文档分页。",[10,48,49],{},"Classic 可选用 web font library。应用负责字体文件的获取、许可和加载失败处理。需要导出时，也应让转换流程获得相同的字体资源。",[14,51,52],{"id":52},"按需求增加产品能力",[54,55,56,72],"table",{},[57,58,59],"thead",{},[60,61,62,66,69],"tr",{},[63,64,65],"th",{},"需要的能力",[63,67,68],{},"接入位置",[63,70,71],{},"应用还要准备什么",[73,74,75,87,101,112,123],"tbody",{},[60,76,77,81,84],{},[78,79,80],"td",{},"Word 与 DOCX",[78,82,83],{},"Word 预设、模型转换与文件服务",[78,85,86],{},"存储目标、转换提示、媒体资源",[60,88,89,92,98],{},[78,90,91],{},"审阅、表单等专业界面",[78,93,94,95],{},"可选 ",[28,96,97],{},"@quirekit\u002Fclassic-pro",[78,99,100],{},"对应包和功能配置",[60,102,103,106,109],{},[78,104,105],{},"协作",[78,107,108],{},"协作扩展与选定的文档协议",[78,110,111],{},"后端、用户身份、权限和冲突策略",[60,113,114,117,120],{},[78,115,116],{},"AI",[78,118,119],{},"AI 能力包与功能声明",[78,121,122],{},"模型连接、权限与产品交互",[60,124,125,128,131],{},[78,126,127],{},"功能区、菜单、侧栏",[78,129,130],{},"自己的 UI 或 Classic 插件",[78,132,133],{},"布局和业务动作",[10,135,136],{},"这些能力按需安装，各有自己的依赖和许可。不要把完整示例中已经启用的功能当成全部框架能力，也不要假定创建 Editor 就会自动连接账户、存储或协作后端。",[10,138,139,140,145,146,150,151,155],{},"自己的工作区从",[141,142,144],"a",{"href":143},"\u002Fbuild\u002Freference","工程参考","继续扩展；复用产品界面从 ",[141,147,149],{"href":148},"\u002Fclassic\u002Fconfiguration","Classic 配置","与",[141,152,154],{"href":153},"\u002Fclassic\u002Fplugins","产品插件","开始。",{"title":157,"searchDepth":158,"depth":158,"links":159},"",2,[160,161,162],{"id":16,"depth":158,"text":17},{"id":42,"depth":158,"text":43},{"id":52,"depth":158,"text":52},"识别编辑器之外的资源服务，为完整产品补齐接入。","md",null,"zh-CN",{},true,8,"\u002Fbuild\u002Fresources","构建产品",{"title":5,"description":163},"build\u002Fresources.zh-CN","7JWssUtiXoBYg6K9w9BUNtBuxUUMMJjSLLpbLQhVlIw",1793045209086]