Nechtěl jsem psát skript. Chtěl jsem zpersonalizovat pár set dresů a předpokládal jsem, že to Illustrator umí. Tenhle článek je to, co jsem cestou zjistil - včetně jedné věci, kterou jsem pokazil sám a nahlásil ji Adobe jako chybu Illustratoru.
Co panel Variables doopravdy dělá
Okno → Proměnné nabízí čtyři typy proměnných: textový řetězec, propojený soubor, viditelnost (objekt se podle TRUE/FALSE zobrazí nebo skryje) a data grafu. Svážete je s objekty, načtete knihovnu proměnných a přepínáte mezi datovými sadami; přepnutí sady aktualizuje grafiku na obrazovce. S bezplatným skriptem VariableImporter od Vasilyho Halla navíc složíte název datové sady z hodnot ve vašich sloupcích - což se za chvíli bude hodit. Od verze CC 22.1 (březen 2018) načte panel CSV i sám, předtím uměl jen XML.
Pro pár variant, které si proklikáte ručně, tohle úplně stačí a nic dalšího nepotřebujete.
Čtyři limity, na které narazíte v produkci
1. Hromadný export vede jen přes akce
V panelu není nic ve smyslu „vyexportuj jedno PDF na každou datovou sadu“. Standardní cesta je nahrát akci a spustit Soubor → Automatizace → Dávka se zdrojem Data Sets. Funguje to spolehlivě. Cenu za to platíte v tom, že export řídí nahraná akce: předvolba PDF je pro celý běh jedna a nedá se měnit podle řádku, a když něco uprostřed dlouhé dávky selže, snadno si toho nevšimnete.
2. Názvy souborů ano, struktura složek ne
Výroba chce Novak_10_XL.pdf, ne Batch_0001.pdf. Illustrator pojmenuje sady načtené z CSV jako „Data Set 1, 2, 3“ a navázat název sady na sloupec sám neumí - je to otevřený požadavek na Illustrator UserVoice. Dávka pak nabízí tři schémata pojmenování, všechna odvozená od názvu sady. Existuje ale řešení zdarma: VariableImporter poskládá název sady až ze šesti polí, mezi nimi i z hodnot ve vašich sloupcích, takže Novak_10_XL.pdf dostanete bez placení čehokoli. Co zůstane mimo dosah tak i tak, je struktura složek řízená daty - Dávka zapisuje do jedné cílové složky, takže rozřazení podle zakázky, produktu a velikosti zůstane na vás.
3. Ve skriptu se snadno spletete a dokumentace nepomůže
Tady jsem strávil nejvíc času a dopadlo to jinak, než jsem čekal. Když jsem se ve skriptu pokoušel přečíst hodnoty z datové sady, vracely se mi prázdné řetězce. Usoudil jsem, že je něco rozbité, a v květnu 2025 jsem na fóru Adobe založil podrobné hlášení i s ukázkovým souborem, CSV a testovacím skriptem.
Ukázalo se, že chyba byla u mě, ne v Illustratoru. CarlosCanto odpověděl správnou syntaxí: k sadě se přistupuje přes doc.activeDataSet = doc.dataSets[i], čte se doc.variables místo kolekce té konkrétní sady a hodnota se bere z variable.pageItems[0].contents. Vlákno je veřejné a jeho odpověď si v něm může přečíst kdokoli: Issue with Reading Variable Data from DataSet in Illustrator 29.5. Čest, komu čest.
Na závěru to ale nic nezměnilo. Ve chvíli, kdy píšete ExtendScript, který přepíná datové sady, čte z nich hodnoty a sám řídí export PDF, už nepoužíváte vestavěnou funkci - píšete si vlastní exportér. Limity nad a pod tímhle bodem zůstávají přesně tam, kde byly.
4. Proměnné obsah dosadí, ale nevytvoří
Všechny čtyři typy proměnných mají společné to, že dosazují obsah, který jste připravili dopředu. Viditelnost umí ukázat nebo skrýt objekt, který v dokumentu už je - logo sponzora se tedy přepnout dá, pokud si všechny varianty nachystáte předem. Žádná z proměnných ale nevytvoří novou grafiku: nesloží číslo z grafických symbolů, nezasadí logo dovnitř číslice a nedopočítá jeho velikost, nedoplní háček do fontu, který háček nemá, a nevysází 17 klíčenek na jeden tiskový arch. A přitom právě tyhle věci sežerou celý den.
Co umí která možnost
Nástroje zdarma opravdu fungují. Každý z nich má ale hranici jinde a tahle tabulka ukazuje kde.
|
Variables + akce |
VariableImporter |
InDesign Data Merge |
exportPDF |
| Načtení CSV |
✓ od CC 22.1 |
✓ |
✓ |
✓ |
| Jedno PDF na řádek bez akcí |
✗ |
✗ |
částečně |
✓ |
| Názvy souborů z dat |
názvy sad |
✓ |
✗ |
✓ |
| Struktura složek z dat |
✗ |
✗ |
✗ |
✓ |
| Čísla z grafických symbolů |
✗ |
✗ |
✗ |
✓ |
| Logo uvnitř číslice |
✗ |
✗ |
✗ |
✓ |
| Diakritika ve fontech bez ní |
✗ |
✗ |
✗ |
✓ 10 jazyků |
| Drobné předměty na jeden arch |
✗ |
✗ |
ručně |
✓ |
| Kontrola chybějících glyfů |
✗ |
✗ |
✗ |
✓ |
| Detekce duplicit |
✗ |
✗ |
✗ |
✓ |
| Log a souhrn po exportu |
✗ |
✗ |
✗ |
✓ |
| Pojmenované profily výrobků |
✗ |
✗ |
✗ |
✓ |
| Dva výrobky z jedné tabulky |
✗ |
✗ |
✗ |
✓ |
| Zůstane v Illustratoru |
✓ |
✓ |
✗ |
✓ |
| Cena |
zdarma |
zdarma |
předplatné CC |
demo zdarma, placená licence |
Kdy si vystačíte s nástroji zdarma
Občasné zakázky, prostá záměna textu, pár desítek souborů, žádná zvláštní typografie - nastavte si VariableImporter a exportní akci a máte hotovo. Vážně. Pokud vaše práce vypadá takhle, zbytek téhle stránky pro vás není.
Kde navazuje exportPDF
exportPDF je JSX skript pro Adobe Illustrator CS4 a novější. Proměnné a datové sady úplně obchází: CSV si načte sám, vyplní pojmenovaná textová pole ve vaší šabloně a vyexportuje jedno tiskové PDF na každý řádek, s názvy souborů i složek postavenými z vašich dat. K tomu skládá čísla z grafických symbolů, vsazuje klubové nebo sponzorské logo dovnitř číslice, doplňuje diakritiku do fontů, které ji nemají (10 jazyků včetně severských Å, Ø, Æ, Ð, Þ), zvládá víceřádkový text a indexy, všechno škáluje podle velikosti produktu a umí vysázet drobné předměty na jeden arch. Co v tabulce vidět není, je práce, kterou nikdo nechce dělat ručně. Když ve fontu chybí glyf pro cizí jméno, Illustrator kvůli funkci Missing Glyph Protection tiše přepne ten text na výchozí písmo - na obrazovce to vypadá skoro správně a poznáte to až na vytištěném archu. exportPDF glyfy kontroluje dopředu, chybějící znak nahradí mezerou, takže váš font zůstane zachovaný, a po exportu vypíše, kterých řádků a znaků se to týkalo - víte tedy, že máte doplnit diakritiku nebo glyf. Stejně hlídá duplicity: shodné produkty přeskočí a kolidující názvy souborů automaticky přejmenuje, obojí spočítá do logu i do souhrnu. Sloupce v CSV se nemusí jmenovat tak, jak chce skript: hned po jeho načtení se je skript pokusí přiřadit k polím jméno, číslo, přezdívka a velikost sám, a co nesedí nebo chybí, doplníte ručně. Z jedné tabulky můžete vyrobit dva nezávislé produkty, nastavení uložit jako pojmenovaný profil a mezi výrobky přepínat jedním dialogem, a další velikosti (30x50 pro ručníky, 42/44/46 pro čepice) doplníte do jednoho pole oddělené čárkou.
Poslední dialog před exportem je zároveň poslední kontrola. Přiřadíte v něm pojmenovaná plátna k výrobku a k velikosti z CSV - plátno dresy-XL patří k výrobku Dresy a velikosti XL. Při správném pojmenování se plátna spárují sama; když někde uteče překlep nebo je máte pojmenovaná po svém, spárujete je tady ručně. Vyberete cílovou složku a PDF přednastavení ze seznamu, který si skript načte přímo z Illustratoru. Názvy pak skládáte ze šesti zástupných symbolů - {cislo}, {jmeno}, {prezdivka}, {velikost}, {kod} a {docName} - zvlášť pro šablonu složky a zvlášť pro název souboru, a zvlášť pro každý ze dvou výrobků. Pořadí je na vás: jestli má název začínat velikostí, číslem nebo jménem, je jen otázka toho, jak si šablonu napíšete. Náhled z prvního řádku CSV ukáže výsledek dřív, než se cokoli vyexportuje.
Vznikl v našem grafickém oddělení a denně se tam od roku 2025 používá. Zakázka na 200 dresů, která dřív zabrala čtyři hodiny kopírování, trvá zhruba deset minut. Demo je zdarma a se všemi funkcemi: 30 spuštění, 20 řádků CSV. exportPDF pro Illustrator · ceník · podpora a časté dotazy. Pracujete v CorelDRAW? Existuje i verze pro něj.