Skip to content

BizPoster 分享海报 ​

模板化 canvas 海报合成:品牌条 / 主图(cover 裁剪,缺省渐变占位)/ 标题副标题 / 简介(自动缩排,行数按剩余高度自适应、至多 3 行裁断)/ 头像昵称 / 二维码复用 BizCode(支持中心 logo)。scale 倍率高清导出 PNG、剪贴板复制、批量生成(循环出图)、templateRequest 远程模板配置。与 BizSharePanel(链接 + 二维码卡片展示)互补,本组件产出可下载 / 可发送的图片物料。

基础合成 ​

1080 × 1080 · 2x 高清导出

默认 square 1080×1080 模板,2x 导出;预览随 data 变化实时重绘(200ms 防抖)。

square 1080² 模板全槽位;内置下载 / 复制操作条;预览随 data 变化实时重绘。

主题与背景 ​

theme 覆盖 bg / accent / text / muted;background 切纯色 / 渐变。

分销邀请海报 ​

750 × 1334 · 2x 高清导出
portrait 竖版 + 头像昵称 + 邀请二维码,朋友圈分享场景。

多尺寸预设 ​

square / portrait / story 三模板即时切换。

高清导出 ​

1x=1080px 宽;2x=2160px;3x=3240px
scale 1x~3x 控制导出分辨率;expose.download 自定义文件名。

复制到剪贴板 ​

expose.copy() 直接贴进聊天窗口 / 文档(不支持时提示改用下载)。

主图注入与占位 ​

注入主图
有图 cover 裁剪铺满;无图自动渐变占位,不阻塞合成。

长文案自动缩排 ​

标题降字号至单行容纳,简介行数按剩余高度自适应(至多 3 行),末行超宽截断加省略号。

批量生成 ​

生成结果为 dataURL,可直接上传 OSS 或写入下载队列
sources 逐条合成返回 dataURL 列表(渲染后自动恢复当前数据)。

远程模板配置 ​

组件以本地 props 渲染,templateRequest 返回后按「远程优先」合并重绘;请求失败静默回退本地配置。

templateRequest 拉取运营规范(模板 / 配色 / 背景),远程优先合并,失败静默回退。

Props ​

属性名类型默认值说明
template'square' | 'portrait' | 'story''square'尺寸模板(1080² / 750×1334 / 1080×1920)
dataBizPosterData{ title: '海报标题' }内容槽位(image / title / subtitle / desc / avatar / name / qrcodeValue / hint)
themeBizPosterTheme{}主题配色(bg / accent / text / muted,缺省取默认主题)
background'plain' | 'gradient''plain'背景模式(gradient 自 accent 向 bg 过渡)
brandstring''顶部品牌名(accent 色条 + 小字)
qrcode-logostring''二维码中心 logo(透传 BizCode logo 通道)
scalenumber2导出倍率(2 = 2 倍分辨率)
filenamestring'poster.png'下载文件名
show-toolbarbooleanfalse内置下载 / 复制操作条
template-request() => Promise<BizPosterTemplateConfig>—远程模板配置(挂载后合并,远程优先)

Expose ​

属性/方法说明
to-data-url() => Promise<string> 当前海报 PNG dataURL
download(filename?: string) => Promise<void> 下载 PNG
copy() => Promise<void> 复制到剪贴板(ClipboardItem,不支持时提示)
generate(list: BizPosterData[]) => Promise<string[]> 批量逐条合成(结束后恢复当前数据)
refresh() => Promise<void> 强制重绘

口径说明 ​

  • 主图降级:图片加载失败或跨域污染画布(toDataURL 抛错)时自动降级为渐变占位重绘一次,保证导出可用;污染源在组件生命周期内不再重试。
  • 缩排规则:标题 / 副标题自基准字号逐级 −2px 至单行容纳(下限 36 / 26px);简介固定 28px、最多 3 行且行数按剩余高度自适应(内容过满时先行减行,保证不压底部分隔线 / 二维码卡 / 头像区),末行超宽截断加「…」;主题色支持 3 / 6 位 hex(3 位自动展开)。
  • 二维码:内部挂载隐藏 BizCode(type='qr',size=200 白底),首次渲染就绪后进入画布;qrcodeValue 缺省时不渲染码位。
  • 批量生成:为同步串行渲染(每张约一帧 + 合成耗时),结束后恢复 props.data 并重绘预览。