CZ | EN | DE | SK | PL

Adobe Illustrator

Variable Data v Illustratoru: co neumí - a jak z CSV přesto hromadně vyexportovat PDF

Illustrator má vestavěný panel Variables, který vypadá jako řešení pro hromadnou personalizaci. V produkci narazíte na čtyři konkrétní místa. Popíšu, co každé z nich znamená, čím si pomůžete zdarma a kde to přestane stačit.

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.

Skript exportPDF vyvíjím od roku 2025. Vznikl z vlastní potřeby automatizovat tvorbu personalizovaných tiskovin - a denně ho používám ve vlastní produkci. Přečtěte si celý příběh

Aleš Ulrych
info@exportpdf.cz