導覽

基本功能

Modifications

了解如何在每次生成檔案時,變更範本中的文字、圖片、顏色和資料。

範本是一份帶有命名圖層的設計。modification 會在單次繪製中變更其中一個圖層,因此同一個範本可以為每項商品、每位客戶或每則貼文產生不同的檔案。範本本身不會改變,沒有 modification 的圖層會維持你在編輯器中設定的值。

每個生成檔案的請求都會一併傳送 modification:

{
  "apiKey": "YOUR_API_KEY",
  "templateId": "tpl_xxx",
  "modifications": [
    { "name": "headline", "text": "Summer sale" },
    { "name": "photo", "src": "https://example.com/shoes.png" },
    { "name": "badge", "visible": false }
  ]
}

為圖層命名

name 必須與範本中的圖層名稱相符。比對時必須完全相符,所以 Headline 和 headline 是兩個不同的名稱。

若要重新命名圖層,請在編輯器的圖層面板中連按兩下該圖層。若要透過 API 列出範本的圖層名稱,請呼叫範本清單,並加上 includeLayers=true。

當某個值沒有變更時,有兩條規則可以幫上忙:

  • 如果沒有任何圖層使用這個名稱,Bannerify 會忽略該 modification,也不會回傳錯誤。請先檢查拼字。
  • 如果有多個圖層使用相同的名稱,它們全都會套用同一個 modification。

欄位

欄位 型別 變更的內容
name string 要變更的圖層。必填
text string 文字圖層或連結圖層的文字、提醒的內文,或簽名的簽署人姓名
color string 文字圖層或連結圖層的文字顏色,例如 #ff5733
src string 圖片圖層的圖片網址
href string 連結圖層的網址,在 PDF 中點選時會開啟
visible boolean 顯示或隱藏任何圖層
qrcode string QR 碼圖層的內容
barcode string 條碼圖層的值
star number 星星圖層的評分。值為 0 時會被忽略
rows array 表格、圖表或鍵值圖層的資料
columns array 表格圖層的欄
title string 提醒的標題,或簽名的職稱
date string 簽名的日期

Bannerify 會忽略不適用於該圖層的欄位。例如,在文字圖層上設定 src 不會有任何作用,而 color 只會變更文字圖層。它也會忽略自己不認得的欄位。

每種圖層會讀取的欄位

圖層 欄位
文字 text, color, visible
連結 text, color, href, visible
圖片 src, visible
QR 碼 qrcode, visible
條碼 barcode, visible
星星 star, visible
表格 rows, columns, visible
圖表 rows, visible
鍵值 rows, visible
簽名 text, title, date, visible
提醒 title, text, visible
圖示、框架、線條 visible

modification 無法變更畫布、圖層的位置或大小,或填色。這些請在編輯器中變更。

文字

新的文字會取代圖層的整段文字。換行會開始新的段落。圖層會保留自己的樣式,例如字型和大小,但文字內部的格式(例如單一個粗體字)會消失。

圖片

src 必須是 PNG、JPEG、WebP 或 SVG 檔案的公開網址。Bannerify 會在繪製時下載該檔案。下載最多等待 5 秒,並重試兩次。如果下載失敗,或檔案是其他類型,請求會以 FETCH_IMAGE_ERROR 失敗。

表格

表格接受 columns 和 rows。每一列是以欄名為鍵的物件。儲存格可以放字串、數字、布林值或 null。

{
  "name": "line-items",
  "columns": ["Item", "Qty", "Total"],
  "rows": [
    { "Item": "Automate plan", "Qty": 1, "Total": "$29.00" },
    { "Item": "Extra seat", "Qty": 2, "Total": "$10.00" }
  ]
}

欄可以是一個名稱,或是含有下列欄位的物件:

欄位 型別 說明
key string 各列用於這一欄的鍵
header string 標題儲存格中的文字
align left、center 或 right 儲存格的對齊方式
width string 或 number 欄寬

如果你傳送 rows 但沒有 columns,表格會保留範本中的欄,且每一列都需要有這些欄的鍵。

圖表

圖表接受 rows。單一資料系列請傳送資料點,多個系列則傳送各系列的資料。

{
  "name": "revenue",
  "rows": [
    { "label": "Jan", "value": 22 },
    { "label": "Feb", "value": 31, "color": "#0d9373" }
  ]
}
{
  "name": "revenue",
  "rows": [
    { "name": "2025", "data": [{ "label": "Jan", "value": 22 }, { "label": "Feb", "value": 31 }] },
    { "name": "2026", "data": [{ "label": "Jan", "value": 27 }, { "label": "Feb", "value": 35 }] }
  ]
}

資料點有 label、數值的 value,以及選填的 color。資料系列有 name、它的 data 資料點,以及選填的 color。

鍵值

鍵值圖層接受 rows,每一行對應一個項目。value 可以是字串或數字,Bannerify 會以文字顯示。

{
  "name": "order-details",
  "rows": [
    { "key": "Order", "value": "1042" },
    { "key": "Total", "value": 29 }
  ]
}

接受的格式

modifications 欄位接受四種形式,全都會產生相同的檔案。

形式 適用情境
modification 陣列 SDK 傳送的格式。本頁使用這種格式
每個圖層一個鍵的物件 免寫程式工具和快速請求
任一種形式的 JSON 字串 查詢字串,例如簽署網址
null 或空字串 沒有 modification

在物件形式中,鍵代表圖層。字串或數字的值會設定 text,物件的值則保留它自己的欄位。

{
  "modifications": {
    "headline": "Summer sale",
    "photo": { "src": "https://example.com/shoes.png" },
    "badge": { "visible": false }
  }
}

布林值需要使用物件。"badge": false 會把圖層的文字設為 false,而 "badge": { "visible": false } 才會隱藏它。

檢查請求

無效的 modification 會回傳 BAD_REQUEST。訊息會指出欄位的路徑,例如 modifications[0].text。

Modification 結構描述列出了每個欄位及其型別。