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. Při reálném používání jsem narazil na čtyři problémy. V článku se dozvíte, jak se dají obejít a kdy už je lepší sáhnout po skriptu.

Nechtěl jsem psát skript. Chtěl jsem zpersonalizovat pár set dresů a předpokládal jsem, že to Illustrator umí. Shrnul jsem tu své zkušenosti z praxe - včetně jednoho přešlapu, který jsem sám udělal a mylně ho nahlásil 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. 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.

Co jsem zjistil

1. Hromadný export jde 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ě, jen celý export pak řídí nahraná akce. Když něco uprostřed dlouhé dávky selže, snadno si toho nevšimnete.

Jedna věc mě u té dávky překvapila. V dokumentu mám ICC profily z tiskárny ve verzi 4 a Illustrator při každém uložení do PDF/X-4 oznámí, že je převedl na verzi 2. Je to okno s tlačítkem OK a dávka na něm počká. Zkoušel jsem to přes datové sady i přes samostatnou akci, pokaždé to samé. Dávka tedy doběhne, ale ne sama: u dvou set dresů odklepnu dvě stě oken. Kdo má profily ve verzi 2, na tohle nenarazí.

2. Názvy souborů ano, struktura složek ne

Výroba chce název souboru 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, 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

Tohle mi trvalo nejdéle 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: Issue with Reading Variable Data from DataSet in Illustrator 29.5.

Na věci 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. Zbylé tři věci tím nezmizí.

4. Proměnné dosadí hotový obsah, nový nevytvoří

Všechny čtyři typy proměnných mají společné, že dosazují obsah, který jste připravili předem. Viditelnost umí ukázat nebo skrýt objekt, který v dokumentu už je - logo sponzora se tedy přepnout dá, pokud si předem všechny varianty nachystáte. Žádná z proměnných ale nevytvoří novou grafiku: nesloží číslo z grafických symbolů, nevloží logo dovnitř číslice a nedopočítá jeho velikost, nedoplní háček do fontu, který háček nemá, a nevyplní údaje do 17 klíčenek, které se pak vyexportují jako jedno tiskové PDF. A přitom právě tyhle věci zaberou celý den.

Srovnání funkcí

Nástroje zdarma opravdu fungují, jen každý umí něco jiného.

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ů
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. Pokud vaše práce vypadá takhle, zbytek téhle stránky pro vás není a dále již nemusíte číst.

Co ostatní nástroje nezvládnou

exportPDF je JSX skript pro Adobe Illustrator CS4 a novější. Proměnné a datové sady úplně obchází: CSV vytvořené z tabulky 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. Kromě toho je tu 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 uděláte 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}, {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.

exportPDF 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. Co za vás skript udělá a co si musíte udělat sami, jsem rozepsal v článku o automatizaci potisku dresů.

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