# 使用Illustrator達成同一個樣板並替換圖示中顯示資訊的操作紀錄。 版本: Adobe Illustrator CC 2018 適用項目: 大量客製化貼紙、屬名的抽獎券... 操作大綱: 透過Adobe Illustrator(後簡稱Ai)中的變數資料庫中將物件定義成一個變數,類型包含文字、圖表、檔案,而變數的內容就是他物件本身呈現的樣子。一組的變數物件稱為資料組,匯入預先設計好的資料組,使其樣板當中宣告的物件變數可以在資料組中做切換,已呈現不同資訊的載入。 --- 步驟如下 1. 開啟介面中的變數選單 ![image.png](https://hackmd.io/_uploads/BkBP7AeXa.png) 2. 主要會使用到載入變數資料庫、儲存變數資料庫和擷取資料組,其餘的操作和名字一樣很直觀。介面下排右至左是刪除變數、新增變數、解除連結變數、製作可見度動態、製作文字動態和鎖定變數 ![image.png](https://hackmd.io/_uploads/HJHfNRemp.png) 3. 連結變數的方式目前操作過兩種 a. 先新增變數,選取物件跟變數後"製作文字動態" b. 點選會替換資訊的物件,在變數資料庫介面中點選"製作文字動態" 4. 將物件和變數建立好後,儲存變數資料庫,檔案會是XML檔,重要的內容會針對在`<v:sampleDataSet dataSetName="1">..</v:sampleDataSet>`這段 ![image.png](https://hackmd.io/_uploads/Bk7mw0lQa.png) 5. 從內容的結構可以看出,每個變數裡都會有`<p>..</p>`以此來帶入Ai物件中連結變數的值。將這裡的值做替換後載入Ai的變數資料庫並選擇特定的資料組(dataSetName),樣板中的資訊就會依照XML中所設定的值變動。 6. 擁有大量的資料要如何產出適合的XML?我的方式是透過程式幫我產出`<v:sampleDataSet dataSetName="1">..</v:sampleDataSet>`中的各個資料組 ``` for ($j = 0; $j <= $set; $j += 1) { echo "<v:sampleDataSet dataSetName=\"第" . $s . "組\">\n"; $s++; for ($i = 1, $k = 0; $i <= 8; $i += 2) { if (isset($data[$n])) { $p = "<p>" . $data[$n] . "</p>"; echo "<變數" . $i . ">\n"; echo $p . "\n"; echo "</變數" . $i . ">\n"; } else {} if (isset($data[$n])) { $p = "<p>" . $data[$n] . "</p>"; echo "<變數" . ($i + 1) . ">\n"; echo $p . "\n"; echo "</變數" . ($i + 1) . ">\n"; $n++; } else {}$k = $i + 1; } echo "<v:sampleDataSet>\n"; } ``` 7. XML的內容成功產出後就可以在Ai的變數資料庫中進行載入,後續可以先在資料組中進行切換,看是否有成功達到預想的效果。 8. 開啟Ai中的"動作" ![image.png](https://hackmd.io/_uploads/HkgssRlQT.png) 9. "動作"介面,下排由右至左是刪除動作、製作新動作、建立新組合、播放目前選取的動作、開始錄製、停止錄製 ![image.png](https://hackmd.io/_uploads/ryibhAeQp.png) 10. 建立一個新組合後錄製動作,檔案>另存新檔,停止錄製 11. "動作"選單中的批次,確認好動作中的儲存檔案後再批此裡面設定後續的自動化操作。 ![image.png](https://hackmd.io/_uploads/HJOU6Cg7T.png) 基本上就是等他轉檔完畢後就完成了😂 操作時可能會遇到的問題: * 載入資料庫時出現問題(濾鏡狀況??、載入失敗),可能會出現莫名其妙的情況,重開Ai,並重拉一次變數和物件。 * 嘗試過多個要顯示相同資訊的物件共用同一個變數,但嘗試後出現問題,不曉得是不是操作上有遺漏甚麼,後續是改成用各自的變數,儘管顯示相同資訊,也是在XML中去做連結。 * 批次匯出PDF檔案時,不用在錄製動作裡額外加入"切換資料組"。