Okay, I did this once, twice, three times a.... and I ran into an issue, went for a walk and came back to watch this again and realized I needed to change the NUMBer on the artboard to a digit and not a name. You have been very instrumental in helping me develop a new process for manufacturing. You are the BEST! Oh yes I subscribed too!!
I swear, at first i was getting confused on how to make things work but then i started changing all the headings and object names to the same names then it all worked out. YOU SAVED ME A TONS OF HOURS!!! I was working with 200 names for a certificate as well as an ID and this video helped me tons! if i could like this video more than once, i would've done it already. :)
Here is a note: I had been trying to do this for hours with no success - somehow the variables would not be assigned to the objects. That is until I removed the capital letters in the variable names and objects. I guess they were considered "special characters". BINGO. IT WORKS. Thanks for the tutorial, although it took me a whole day to make this technique work, next time it'll save me heaps of time!
Thank you so much! I watched this video a while back and lo-and-behold I find myself using this process a few months later. Thank you for being so thorough with your explanation. I had a little difficulty with the image dataset but I figured it out. Thank you!
Hey that's so cool you are able to use it! Do you know a fellow named Josh Lambert? He is in the HTML email dept, and I used to work with him back in the day.
+Katya Franshesca Hernández Siliézar You're welcome! Very glad it helped out. And I just released a course on the NEW Variable Importer on Lynda.com, so make sure to check for that (either search on my name at Lynda.com or the link is at my site).
Its really great, i was looking some thing like this for a long time and now finally i found Thanks you make my job i would say much easier i am really looking forward to your other video as soon as its done
Just great. The only glitch I had is that I had to manually edit the text name to something different in order to be recognised by the auto binding algorithm
Amazing Tutorial dude!! Really, it saved me a lot of work, finally i find another way to do this without Indesign, thanks a LOT!! I just have a question, is it possible to save all the bunch of "cards" into a single PDF file? it helps a lot when you need to share the file and to print, i will really appreciate if you have a tip for do this, again thanks a lot
Hi John, thanks a lot for you attention and patience. I'm working hard to make it works and can't realize what's happening with me. So when i go to Scripts/VariableImporter it doesn't open the same window as yours, but i still can click on Choose Data File and select the csv. After that it shows me this error: Proper XML Syntax isn't followed by some variable name(s) 1) Element names are case-sensitive 2) Element names must start with a letter or underscore 3) Element names cannot start with the letters xml (or XML, or Xml, etc) 4) Element names can contain letters, digits, hyphens, underscores, and periods 5) Element names cannot contain spaces (All names are going to be Auto-replaced): -------------------------------------- name;position;email;phone I already looked all over the csv and there isn't any space or special character as you mentioned. I even tried to delete phone row to see the numbers were the problem but nothing changed. By the way, i'm on a mac using Illustrator CC 2015 and Excel. imgur.com/a/760AW Could you please give me a light? Thanks a lot!
I have exactly the same problem. Working with Illustrator 2018, I'm not able to copy the stuff from the video because this XML-error keeps popping up. I would love to know how to solve this. Any suggestions?
Hi - This is terrific! My only issue is some of my datasets that I’m assigning as the file name have a forward slash in them. ie HLJ1/2. The file ends up being named ‘2’. So it only uses whatever is after the forward slash. Thoughts?
So I'm trying to figure out if this will work for several items on a page. For example: I have 45 name titles and 45 phone number titles on my art board. Basically I want each one of those to have a different name and their associated phone number and want them to auto populate from the csv file. Is that possible. Basically it's like a mail merge that you can do with word to print shipping labels on an avery template and have it populate all at once?
If you're in MS Excel, you should type an apostrophe ' before the @ symbol like so: '@image That will tell Excel that you really want to place the @ symbol and not start a function. I hadn't run into this when I made this video because I always used NeoOffice or LibreOffice instead of Excel, and they didn't automatically trigger a function when using the @ symbol.
I seriously can't thank you enough for this script. It has improved my workflow by about 300%, no exaggeration. I have one request, which I don't know how big of a task it would be, but could you add the ability to change text color. So 001.pdf might have blue text, 002.pdf has red text, etc. Maybe setting it by hex colors?
+Patrick Glenn There's a technique for this, which is written here: www.linkedin.com/pulse/illustrator-variable-data-advanced-techniques-recoloring-vasily-hall
Hi! Thank you for this! I'm facing a problem tho. I'm getting a "The current values have not yet been captured, and will be discarded upon switching data sets" error everytime the batch tries to change the data set to save. It means i have to click "Yes" everytime it saves a new file. Am i missing something? Can you please assist with this?
Hello John and Vasily, thanks so much for this, it is really helpful. I have used the script many times for text-only designing, but today I wanted to use it with an image as well. I am using Illustrator CS6 and have the newest version of variable importer installed as well as the legacy 7.1.3 version available to use. I have tried both of them, and they are working great with the text as before, but the linked image is not being replaced by my chosen replacement images. The replacement images and the linked file are all .png files. Is there something I can do to make this work? Thanks in advance. EDIT: I actually just got it to work 30 minutes later, all I had to do was make sure the size of the linked image was the exact same as all my variable images. :)
Hey Kevin, one common problem is that when using Excel you need to put an apostrophe directly before the "@" symbol in your image header to let Excel know that you're not starting a formula. This is only for Excel. The open source and other spreadsheet programs don't do this as far as I know. If that's not it, can you use the contact form on my website and get in touch with me via email? Then I'd like to get ahold of your actual files and see what the story is...
Hey! I've been using this guide for a while now and really appreciate it. Any ideas about the following error? Proper XML Syntax isn't followed by some variable name(s) Element names are case-sensitive Element names must start with a letter or underscore Element names cannot start with the letters xml (or XML, or Xml, etc) Element names can contain letters, digits, hyphens, underscores, and periods Element names cannot contain spaces (All names are going to be Auto-replaced): I can't find the issue ANYWHERE in my CSV or AI file. When I import, I can't cycle the datasets either.
Yes, but it takes extra scripting to do. I'm working on a pro-level importer/exporter though which would make these kinds of problems accessible to non-coding users and will require far less time than the method here: www.linkedin.com/pulse/illustrator-variable-data-advanced-techniques-recoloring-vasily-hall/
Hi and thank you for this useful tutorial! Unfortunately, as others in this comment section, when i try to do it with images i get this error "The filter cannot be complete because of a bad parameter error". Can you kindly help me? Is there a way to communicate with you and mybe sharing the file i'm woring on? Thank you again.
Using some wild action techniques, it is theoretically possible - but not straightforward. For example, in the action you'd have to have a part where you lay down a rectangle, center with current artboard, then move it where the next artboard would be - convert it to an artboard, and also make sure that all your stuff gets properly duplicated to the latest spot.
Rex David say, I am thinking of making a pro-level extension of this script. It will allow you to get images from URLs and the whole shabang. Of course it will download each of the images first as that's how it would need to work in Illustrator- so they will still end up on the hard drive. I will also look at ways to make it work with something like the google sheets, etc. My question to you as potential customer is, what's your ideal price point where both points 1) you want to pay for it because you like using and and 2) you have to use something like this and the next better solution from this one costs too much, meet.
@@Vas1ly well, right now that just as easy as feeding the url pile to a download manager and then using local address to import. would people pay to bypass that step... well probably not. maybe with more added value, yes, depending on the value add.
@@RexDavid I suppose you may be a power-user with a workflow where using this feature would not be a high-frequency occurrence. It is noted. Now, if you say, had to do this download manager step many times per day or per week, maybe then your valuation of this would be a bit higher. After all, the entire VI is just sugar and the native process plenty available via manual inputs - in some cases it's actually an overkill. However, you are right as indeed there would have to be more features to legitimize a paid product. Unfortunately, and regardless, the web-fetch feature for the VI would take it up an order of complexity such that it would have to be financed.
Hi Alan, the VI script doesn't really do that, but if you needed to change the size I suspect you'd have to incorporate that change into your save action by performing a transform, then undo or otherwise put it back to the existing size before finishing the action and it moves on to the next data set. Or, you can size the chart to the size you want it, and then with your linked object you can play around with the Placement Options found in the flyout menu in the Links panel. If you set it to "File Dimensions" then your chart should come in at the original size. Not ideal, but i'm thinking you'd need further scripting to dynamically change the images any other way.
my AI 2020 won't show this option "import .csv options" i can't do the bind by name setting. it's frustrating. hope you have an update setting for 2020 users like me?
I can load the dataset. Text+images, but If I click to next dataset It blink a message every time. The current values have not been captured, and will be discarded upon switching data sets. Proceed?"
I have multiple paragraphs to import as part of the variable data. Is there a way to delineate the text as a "chunk" (the paragraph contains commas) so that it exports under the appropriate column from the .csv file?
I figured this out. It had nothing to do with commas or paragraphs. My variables were on named layers, BUT they weren't in the same layer group and the script didn't like that.
Hi John, very helpful video. Using illustrator CC. have got it to import variables for text but it won't bind them automatically for some reason and i keep getting errors for images "The filter cannot be complete because of a bad parameter error". Would like to know if it's down to me or is just the variableimporter script won't work on CC. Any help would be appreciated. Thanks Ian
Need Help!!! Ran the script, imported my variables, and received the dialog box that my variable data has been imported. However, when I click on "Cycle Update All Datasets", they do not update on my screen. Also, I noticed there are no labels under "Objects" under the Illustrator Variables window. What am I missing?
Cycle Update all datasets is meant to go through all the datasets, display them and 'update' them to what is seen on the screen. This feature is mostly for the Illustrator errors related to the use of visibility variable, and isn't really for display purposes. The absence of labels in the Variables feature may speak to another Illustrator UI bug, try to close this window and open it again, or open a new blank document, open the Variables palette and close it, then go back to original document. Maybe then it will cause the display inside this palette to refresh. I hope this helps, let me know either way.
May i ask for the placeholders, should it be TIFF always or can it be JPG? I don't know what am i doing wrong as I'm able to import the text but unable to import the JPG. Is there a certain way I've to save the images?
Hey Larry. You should absolutely be able to import jpegs instead of tiffs. Are you making sure to include the '@' symbol in front of your header name in your spreadsheet? If you're using Excel, sometimes you have to put an apostrophe in front of the @ symbol in order to tell Excel not to turn that field into a formula. Also, are you using the latest Variable Importer (v8)? what exactly happens when you try to import the images?
John Garrett wow! Thanks for the fast reply!! I used the '@image like you said and i used a tiff placeholder like you did in the video and my images were all JPG but the wierd thing is that when i did a test, it says that images 0/3. It could detect the images but cant import it. Im using the latest i downloaded from your site
No worries, Larry! As Vasily said earlier...this is what we do :) Ok, so in the File Paths tab, you're using the Prepend Image Path button and selecting the folder, right? In the first tab (Variable Display), it definitely says "image" under the Type column? See if one of those might be the problem...
Alright, can you jump over to my site and use my contact form so we can continue this by email? Once we're in contact that way maybe you can send me the files so I can take a look at them myself. When we get it figured out I'll post back here so others will know what happened
Great video! I've managed to create variables with the csv, however I'm trying to accomplish something slightly different. Is it possible to have one file with an instance of each record? I'm designing product labels, which will be opened by another program (Omega and plotted on a Gerber), so Illustrator has to be used. Each label needs a different model number.I wanted to create a template that could be opened, csv updated, and everything updates in the Illustrator file. I followed this tut and got it to work then duplicated it multiple times. I then tried to go to subsequent objects and change the record, but it's only changing the original...
This exports multiple files from one file, so each time you want to update multiple files, they have to be re-exported. Did you utilize the Batch Actions for your export? Or maybe I am understanding wrong, are you actually talking about how when you open the exported files, they no longer have variables in them?
I didn't need the action portion of the tutorial. I actually was able to get it using the next video that used the RenameArtFromText script. I wanted multiple records in one file (artboard). I created an Illustrator template (.aia) file and a template Excel file, which works nicely. Thank you!
Thanks! I was re-watching the video and saw a pop-up that you had created a version for multiple records on one page, so I clicked on it and that's exactly what I needed! As I understand it, there's no way to update the data in Illustrator, correct? What I've done to "update" instead is make changes to the csv, delete all variables, then use the VariableImporter again.
Amazing help, thanks John and @Vas1ly! I cannot wait to try with a live project! One question though, is there a way to make only part of text in one text frame a variable, like in InDesign? Let's say we have a centred block of copy but only one word half way though the second-to-last line needs to be a variable, and that word might be 3 or 14 characters long. I'd of course want the copy to stay centred despite the length of the lines. All tutorials I've seen deal with only separate variable text objects. Many thanks again!
I forgot to ask, is there a also way to predetermine which layers are turned on & off for which dataset, or would that be a manual process afterwards? Or can native .ai images be used to be pulled in as variable data images?
@@madinagoodway You can use the visibility variable but you have to manually attach those to layers cause the script can't attach variables to layers but you can through the UI - it's a one-time setup so hopefully there aren't too many layers!
is it possible to set a font for the imported text to use? Say I have several Names that need to be filled but those names need to be in 3 different fonts
Not so much, but you can have all the fonts inside pre-made text frames, each bound to the same variable for text, and also bound to a variable for visibility. This way you can hide the ones you dont' want and show the ones you desire to be shown.
Hey John, I tried to run the script and select my .csv file, but it won't let me select a file to run. I am simply trying to create a sequentially numbered set to apply to a parking permit decal I created. I would like to be able to number 1-1000 for example with Excel, and then have the stickers duplicated with each number increasing. I created an excel file and I can't seem to make it work with this script. Any advice would be greatly appreciated. I am using Illustrator CC, if that makes a difference. Thanks!
+sleeplessinva sorry I missed this! When you say it won't let you select a file, do you mean it's greyed out and you can't even click on it? Or are you getting an error at all?
+Ahmed Adel so to be clear, you exported your csv file from Excel, then when you load the script from Illustrator, you you can't select it? I know someone else in the comments discovered that their Mac was adding an invisible file extension to their files. So 'myfile.csv' would look fine in the Finder, but when you used Command-I to Get Info, they would see the file was actually named 'myfile.csv.txt' or something similar. Deleting the extra file extension there solved the problem, though.
hi!! this is so amazing...i'm having one tiny problem. when i export, i'm trying to export as a .png and i have to "replace" each file. it won't let me save all 300 items in one folder without going through and renaming each one. any ideas? the only one i can get to work is .pdf or .ai. and i really need .png or .jpg...please help!! : )
In Excel you have to put an apostrophe - ' - in front of the @ symbol so that Excel doesn't treat it as the start of a formula. I found that out the hard way myself...!
I have exported the csv and can see the file and select the file when I run the script however I get the following error message once I click okay Error 21: null is not an object Line: 1673 -> var type= df.displayName.match(/(\.txt$|\.csv$)/1)[0]; What am I doing wrong?
+Gini Caradori How did you download this script, or, did you edit it somehow? There should not be a "1" in there, this line is actually: var type = df.displayName.match(/(\.txt$|\.csv$)/i)[0]; Also, are extensions hidden or appended with any other characters on your text file so that it doesn't end with ".csv" or ".txt" ?
John, I'm using Illustrator CC 2017 and after clicking the variable importer script, the options panel that opens is different than yours in the video. After choosing my csv file I am getting a "Variable Name Correction" window that opens and says "Proper xml syntax isn't followed..." Not sure what I may be doing wrong but I can't get the script to work. Any thoughts?
I actually just figured it out! I deleted all extra columns and row in the csv (using numbers on mac) and then had to manually connect each variable name with the "make object dynamic" and it works perfect.
Hi Christopher, I'm glad you got it worked out! Yes this video is using version 7 of the Variable Importer. I have a more in-depth course (2.5 hours) on Lynda.com that covers version 8, if you're interested. It looks like you've got it working, though. Vasily makes a good point too - you can skip the manual connect as long as you have your objects named the exact same thing as your column headers, then choose the "Bind by Name" binding method in the Options screen. Saves quite a bit of time, and every little bit helps! Just let me know if you have any more issues.
So I've tried this a few times now to address some envelopes, but what keeps happening, if I follow every setting above, is that the data from the first envelope/line in the CSV gets saved over and over again, instead of my imported data. What is going on?
Hi Lisbeth, are you getting a bunch of separate files with the same data in it? Or is it saving over the top of the same file over and over again, and you end up with only the one file? Also, are you using the new version (v8) of the Variable Importer? The interface looks entirely different from what's shown in the video (v7). If so, do your data set tests come back ok? And finally, you're making sure to "Save a copy..." and not changing the name at all?
I solved it- there was ONE variation that was different. Now my issue though, is that centered text and items aligned with one another move all over the place. Still faster than doing everything separately, but I'm wondering why this happens.
Hi John, This script is a safer. However, I am not sure why the object and the variable keep breaking link every time i open my AI template again. I have 133 fields to be link on a constant basis. Thank you once again.
Hey Kai, I'm not sure if I'm reading you right, but unfortunately the script doesn't automatically re-import or update the data. So for example if you import, then update your csv later, Illustrator will not "know" about those changes and you would have to re-import again. InDesign's Data Merge does a (slightly) better job at this by at least letting you know that the csv has changed, but you still have to re-import (re-merge) even then. Let me know if you were talking about some other behavior though.
Hey John, thanks for the reply. Apologize that I was being unclear. I have written too short about my issue. I will write you a more detailed question on your website. Thank you.
I think I've done everything right but it doesn't bind my records automatically. Names are the same and binding is set to name. I'm running on windows and use .txt file. CSV created in excel is not seen by the script, first collumns don't appear as the variables. Thanks for help.
Wojtek Pająk Hey man, you're sure you have the "objects" named, and not just the layer, right? If so, make sure none of your variable objects are grouped or in a compound path. I noticed it won't work if they are. So you're not using a .csv file, but a .txt? I'd go back to the .csv, and make sure it is the right encoding when you save it. It should be in UTF-8 encoding. Also, make sure there are no spaces or special characters in the variable names in the top row of your csv file. Hopefully this helps somewhat. Let me know if it still doesn't work out.
+Vas1ly I had trouble with it before, although I can't remember which version of Illustrator I was using. Now I always make sure they aren't grouped just in case. I *could* be thinking of the custom script you made that time, though...
Yes, but you have to use the placed file (Image) variable. Make sure your placed images have the "X" through them to say they are in fact placed and not embedded.
I can't seem to save the .CSV the way you show here (with the columns). It gives me an 'Varialble name Correction' window while importing. I have to create a layout like this: name,number,team_name, ect. Why do I face this problem? Can anyone help me? I can't ask clients (or co-workers) to create an excel like that. Thanks in advance!
Yea, that's the nordic format.. would you be able to use a find & replace, and change the semicolons to commas or tabs? If your data contains no commas or tabs, you can do either one. Then it should work.
Not unless there's a plugin which does this, and plugins are more complex to make and are more version-dependent than scripts. The plus side would be the possibility of document binding without using any of the XML stuff. (This script here just makes and deletes a temporary XML file based on the CSV data) However, the cost to develop such a plugin could be sizable, so it would take some funding...
It would take usually a bunch of funds because I think such a project would require a lot of time and effort. However, it may be possible to create an HTML panel extension in the newer CC versions, which could simulate 'linking' by running every time you activate an Illustrator document: it could check a recorded associated .csv file for a modification date since last, and auto-reimport. Still would take some time, etc. All being said, the VariableImporter script alleviates most re-import choses with the "presets" feature, making repetitive categories of jobs easier to launch. Have you practiced utilizing any presets?
When you exported as batch each file received a unique file name base don data set. When I export as tiff I all files get only the file name which creates a number of overwrite requests. How did you get your unique names on each file in your batch?
Hmm I don't recall ever having that problem. However...I just did a quick test and I see that I was getting errors *UNTIL* I changed the filename in the Export window. For example, my .ai file was named "numbers.ai", so when I started recording my action and chose Export, Illustrator was going to name the file "numbers.tif". I added a 1 to the end, so it became "numbers1.tif", then continued through the export options. Then when I ran my Batch, the Destination dropdown was set to "none", then bottom checkbox for "Override Action Export Commands" was checked on, and I chose "Data Set Name" for the File Name option. With these settings Illustrator spit out many separate files all named for the dataset name, and I got no errors. Somehow, I never had to do that before, though. Can you tell me what version/platform of AI you're using?
glad you got it working! And heck no, I didn't write this script lol. It was made by Vasily Hall, and he reached out to me hoping to get some exposure for it. I thought it worked so well and could really help people complete their work faster, so I did what I could to get the word out. All the best!
Thank you so much! I watched this video , but when i switch between images in the records a messege appear " filter can't complete because of unknown error " What can I do ??? ... and I have one another question how can i save each data set to a jpg to print it instead of eps or pdf Thanks
Are you using CS5 by any chance? And yes you can export when recording your action to JPEG. Record your action and export instead of saving pdf or eps.
No , Iam using illustrator CC 2017 for middle east ... I made all the steps in this video until 12.10 , assigned the variables to objects by clicking make text dynamic , and so make linked file dynamic to assign photos ! is this step is true or not ... when the process complete and i begin switching data sets by using arrow this message apears " filter can't complete because of unknown error "
yes they are all located in the test tab and not missing . is the vesrion of illustrator is the problem or what !! ... if you need any screenshot for any step i made please tell me
hi Ramy, are the files on an external drive? Can you try moving them to your desktop or someplace else? Maybe the path is the problem? Also, try using the named objects for your linking, by naming the objects themselves in the Layers panel, then making sure your csv headers match the names of those objects. maybe the binding is getting screwed up somehow when you do it manually.
+katrinafasho Hi Katrina. You're clicking the "Raw" button first, right? When I save from the browser tries to save it as "VariableImporter.jsx.txt". At least it does for me in Chrome on the Mac. You can save it that way and just delete the extension from the finder, or delete the ".txt" in the save dialogue box and click the "Use .jsx" button when you're prompted.
+John Garrett Thanks John, I actually figured it out. I had tried to just delete the .txt but it wasn't working I had to right click on the file and go into "get info" and under name and extensions delete it there and go through the other dialogs that followed. Now I am wondering if you could help me figure out how I can save all the variables in one single file ? I want to print them out without having to do each one individually. I have 35 files, so seems tedious to have to open each file and print 35 times. Also I was hoping to print multiple on one page. I am not a designer, so pretty clueless here >_
Have you run into Ai crashing while trying to import to csv file? I did this tut on another project with 520 entries and it worked, trying on another project of the same nature with 960 variables and the process crashes Ai.
I have run into this before with someone who contacted me about crashing. It ended up being a special invisible character in one of the fields that was causing the crash. As soon as we deleted it then it worked fine. In your case I would delete half the spreadsheet and then see if it imports. If so you know the problem is in the other half. If not then the problem is in the half still in the sheet. Then keep deleting half of the entries each time until you narrow down the culprit(s).
@@JohnGarrett Now that's an idea!. I am seeing on my clients so project that the red/square is visible in a few areas. This just might be it. Thanks again John for your responses.
Turns out that the auto-binding feature causes a memory leak on high-variable counts, although I think in CS5 it wasn't an issue, or that I was successfully able to bind about 2000 variables in CS5. The problem is that iterating through Illustrator variables in script causes each one to go a little slower, until the app goes unresponsive completely. I'm considering making a Batch-Binder script which could at least allow people to do binding in batches of 100 variables or so if others are experiencing this issue. I was definitely able to reproduce it on CC2018 in both Windows and Mac!
I keep getting an error when running the script. 'Error21: undefined is not an object. Line: 1697 -> var columnCount=toplineArr.length;' What does this mean?
+J. Williams can you share your data file by any chance? The old script seems to not like something about its formatting. You also can try the new version 8, which may work better, or may reveal more clues about the error.
+Vas1ly I installed the new importer and it worked one time for me. I haven't been bale to get it to work since. The new error I am getting is "There appear to have been no variable names in the data file 'names.csv'". Any ideas why I might be getting this error?
+Vas1ly I am using CC+2015 with El Capitan I am trying to figure out the best way to share the csv file. i cannot post it directly to this conversation.
+jdrake Sorry I'm late with this. Do you get an error of any kind when you try to switch to the next dataset? Are you absolutely sure the data is bound correctly to the objects? If you're still having problems let me know and I'll try taking a look at the files to let you know what went wrong.
HI Krishna, did you make sure to actually record your action first? If not you'll only see the default actions there. Also, you have to make sure to have the correct set chosen in the Set dropdown. If you recorded your action into a new or different set then it will only show once you select that set in the dropdown.
Feel like I'm doing everything correctly but after the import, only "variables" are listed in the variables panel "Objects" remain empty. i.imgur.com/DlUGOjd.png Help appreciated: Running CS5 on Windows....
+ SUBTUBESCENT hey what binding method did you choose in the Variable Importer? Did you make sure it was on "Bind by name"? Also, did you try binding them manually after the import by selecting the object, then selecting the variable in the Variables panel, and then clicking the "Make Text Dynmaic" button at the bottom of the Variables panel? At least then you'll know if they actually will bind. If they don't then somehow there's something else wrong...let me know when you get a chance.
Thanks for the quick reply John. My import dialogue doesn't look quite like yours but I am using 'bind by name' as per the instruction. I havent tried binding manually just yet - see below for my process... i.imgur.com/w3t47qr.png i.imgur.com/wotBLuY.png
Ok so you're using version 8 instead of version 7 like my video. It *looks* all good from your screenshots. Is there any way you could jump over to my site and use my contact form? Then once we're in email contact you could send me your files. I'd like to take a look. I'm on the Mac, but I do have a version of CS5 so I'd try it in there first.
It may be possible with use of a special script which could take your variable text contents and replace certain contents of a text box with combined text. Maybe one day I can write such a script.
Been using this for quite some time now. Thanks for this tutorial. I have a question, how do you batch export as PNG directly from AI without having to export as eps.
I have a simple design business cards with variable data of names, phone, and email. I try to use an excel spreadsheet exported as comma separated data and your script to change this data. Once it imports, it never changes anything. Nothing ever happens. I have no idea why not. I'm thinking of taking your Linda course but not sure I want to watch 2.5 hours of something just so I can change email addresses easier. I think at this point variable data is probably too error-ridden and time consuming than just manually doing it all by hand. Wish it was easier but it is not.
I'm guessing the binding step is not working. Do you have it set to Bind by Name at the bottom of the Options screen in the "Auto Binding" section? (I assume by now you're using version 8 and not version 7 as I was in the video) If so, when you use the "Find Art" button or run the test in the Test screen does it say it actually found anything? If you used Bind by Name, what I suspect could be happening is object names in the Layers panel are incorrect due to an Adobe feature that interferes with the import feature of the Variable Importer when the Bind by Name method is chosen. To explain: the names of your objects in the Layers panel cannot be the same as the text on your artboard. For example, if the text on the artboard reads "email", then the name of the object in the Layers panel must be changed to something (anything) else. When you type out text on the artboard, Illustrator adds a *preview* of that text in the Layers panel. This is NOT the name of the object. But if they both say "email", you can easily be fooled into believing that the object is named correctly. Instead, you need to double-click on the object in the Layers panel and then name it to something else. Whatever you name it to here needs to be the name of the header in your .csv file. Honestly, I didn't know this at the time I made this video. I wish I would have because I believe a lot of people, even here in the comments on this video, have run into this problem. I do mention it in my Lynda course but that hardly helps here. Anyway, I *think* this is what your issue is, but I could still be wrong. If you're interested in tracking down the problem then let me know.
I appreciate you trying to help. I'm not really sure if I'm doing this right. Going to see if I can figure out the answer from your Lynda course. If that fails, I will just assume Illustrator's variables don't work at all and will never try again. It just is a great deal of time to "automate" something that ends up just being significantly slower than entering it all by hand.
If you'd like me to take a look at the files, can you please hop over to my website and click my contact link, then use the form to send me an email. Once we're in email communication you could shoot me the files, if you're still interested. If you go the Lynda route, I begin the course walking through the default Adobe Method of using variable data, so if you skip that first chapter it would save you some time. Either way hopefully I can help one way or another.
You have a really great teaching style and make things seem far less daunting. Thanks for the tutorial. If I can get this technique to work it will save my sanity however, I'm having a problem before really getting started. I'm working with Illustrator 10 (pause for laughter). While it has the variables panel and recognizes my selections it seems the only script extensions it recognizes are .js, .vbs and .exe. Anything .jsx doesn't even show up if I try to browse on the File>Scripts. Try as I might I cannot find a .js version of the variable script nor do I know if it is possible to convert one to the other much less go about it. Any thoughts? Please? My project is fairly simple - decorative cards with first name, last name & table number. However there is to be around 100 of them, it's a bit of a rush and it may work out that I need to do the printing myself - so any and all help or ideas will be gratefully accepted. Many thanks!
So I know from working with Vasily that they got it working on CS4, but I don't know if it actually will work with Illy 10. Did you try just changing the extension from ".jsx" to ".js"? You never know! Failing that, can you download the trial of Illustrator CC? 2018 just came out, and even if you've had a previous trial you should still be able to get a new trial on this. Then you could go to town and finish your project. OR...if you're really, really desperate you could try doing it the old "pre-variable importer" way. Check my previous video on How to use Adobe Illustrator variable data. This way is a bit more involved, you have to use an online converter to change the spreadsheet data into the XML that Illustrator wants, then you import the XML Library using the "Load Variable Library" command on the flyout menu of the Variables panel. The converter I reference in the video is gone now, so you'd have to google search "Mr. Data Converter" and use that one (it will be on Github). Finally, if you have an older version of InDesign it might be better to just use their Data Merge feature. It was quite mature even many versions ago, and there's always a wealth of info on InDesign out here, so you don't have to struggle to find info like you do with Illustrator.
Actually I did. I have had a surprising amount of success with that trick - but this wasn't one of them. It gave me: Syntax error Line: 27 -> #target illustrator The very, very little I knew about code left my memory years ago so I can't even guess if that is helpful I have actually seen references to a .js version of such a script (on websites which may have been from as far back as 2010) but the links are either 404 or feature the words "latest upgrade" - and a .jsx file. sigh. I am mostly sure that I-10 can do this somehow since it has a variables panel (as well as doing graph imports) but its own help says nothing about these and finding tutorials for the helluv old school versions hasn't been very fruitful. Sorry to go on and on. I tend to get this way when I'm trying to figure something out - and about a thousand other situations. Sorry. Anyway, again if you can shine some light on this I would be thrilled. And if this is ridiculously beyond your impressive resume I certainly understand and deeply thank you for trying. I hope you have a smashing day.
So, with version 10 there's a very big chance that a lot of the scripting features this script uses may not be supported. However, you can at least try to get over the current error by removing the #target illustrator line entirely. If there's a #targetengine line, remove that too and let's see what happens.
Okay, I did this once, twice, three times a.... and I ran into an issue, went for a walk and came back to watch this again and realized I needed to change the NUMBer on the artboard to a digit and not a name. You have been very instrumental in helping me develop a new process for manufacturing. You are the BEST! Oh yes I subscribed too!!
I swear, at first i was getting confused on how to make things work but then i started changing all the headings and object names to the same names then it all worked out. YOU SAVED ME A TONS OF HOURS!!! I was working with 200 names for a certificate as well as an ID and this video helped me tons! if i could like this video more than once, i would've done it already. :)
Now, you also create magic with this tool!
Here is a note: I had been trying to do this for hours with no success - somehow the variables would not be assigned to the objects. That is until I removed the capital letters in the variable names and objects. I guess they were considered "special characters".
BINGO. IT WORKS.
Thanks for the tutorial, although it took me a whole day to make this technique work, next time it'll save me heaps of time!
So changing from Uppercase to Lowercase worked? I'm running this again on another project and Ai crashed 7 times on me. I hope you respond!!!
The best tutorial about Adobe Illustrator and Data Set merge and file exporting / naming out there!
Thank you so much! I watched this video a while back and lo-and-behold I find myself using this process a few months later. Thank you for being so thorough with your explanation. I had a little difficulty with the image dataset but I figured it out. Thank you!
Hey that's so cool you are able to use it! Do you know a fellow named Josh Lambert? He is in the HTML email dept, and I used to work with him back in the day.
Glad it helped you out, Kristine!
Vas1ly I don't work in the email/marketing department, but i'll keep an eye out for Josh. I work in publications.
Cool, and as I am here local, please feel free to discuss with me any opportunities for custom scripting in your organization! :) I'm here to help.
I cannot explain to you how much of a life-saver you are. Thanks a lot for the time you took to make this tutorial!
+Katya Franshesca Hernández Siliézar You're welcome! Very glad it helped out. And I just released a course on the NEW Variable Importer on Lynda.com, so make sure to check for that (either search on my name at Lynda.com or the link is at my site).
Cool! I will definitely check it out. :)
2021 and still a great help!! thank u!!
havent even gotten through it but i just wanted to thank you for taking the time to do this stuff. extremely helpful and professional.
thanks so much!! That's exactly what I am looking for! you can't believe how glad that I found your tutorial
I just say thank you for the putting this tutorial and your detailed write up. It was a HUGE help and save so much time, Thanks again.
This video was great! I do suggest you make a more modern one. The script has been updated so the GUI looks different.
Thanks John and Vas, this worked perfectly for us. Even easier than before. Keep up the good work!
It's what we do!
Its really great, i was looking some thing like this for a long time and now finally i found
Thanks you make my job i would say much easier i am really looking forward to your other video as soon as its done
This is amazing! A total game changer for my production work. Thanks a bunch!!
Excellent, thanks for posting, that's really interesting and useful.
Just great. The only glitch I had is that I had to manually edit the text name to something different in order to be recognised by the auto binding algorithm
Does the image place holder accept any type of file such as a .pdf or .ai file?
Amazing Tutorial dude!! Really, it saved me a lot of work, finally i find another way to do this without Indesign, thanks a LOT!! I just have a question, is it possible to save all the bunch of "cards" into a single PDF file? it helps a lot when you need to share the file and to print, i will really appreciate if you have a tip for do this, again thanks a lot
You can make all individual PDFs and then use Adobe Acrobat to put them all together.
Good stuff !
Thanks for the script and video. Turned out to be super handy for a non-profit flyer!
Cheers!
Thank you so much! Can i change TIFF on EPS or AI?
Hi John, thanks a lot for you attention and patience. I'm working hard to make it works and can't realize what's happening with me. So when i go to Scripts/VariableImporter it doesn't open the same window as yours, but i still can click on Choose Data File and select the csv. After that it shows me this error:
Proper XML Syntax isn't followed by some variable name(s)
1) Element names are case-sensitive
2) Element names must start with a letter or underscore
3) Element names cannot start with the letters xml (or XML, or Xml, etc)
4) Element names can contain letters, digits, hyphens, underscores, and periods
5) Element names cannot contain spaces
(All names are going to be Auto-replaced):
--------------------------------------
name;position;email;phone
I already looked all over the csv and there isn't any space or special character as you mentioned. I even tried to delete phone row to see the numbers were the problem but nothing changed. By the way, i'm on a mac using Illustrator CC 2015 and Excel.
imgur.com/a/760AW
Could you please give me a light? Thanks a lot!
I have exactly the same problem. Working with Illustrator 2018, I'm not able to copy the stuff from the video because this XML-error keeps popping up. I would love to know how to solve this.
Any suggestions?
Aha, this has now been solved: as of 12/2017 automatic semicolon-delimited CSV format detection is added.
Really amazing tutorial! Very helpful in when doing localization using multiple text strings. :)
Amazing man!! greetings from Brazil
Thank you so much! Do you know if there is something similar for InDesign with the exporting of specific file names?
Hi - This is terrific! My only issue is some of my datasets that I’m assigning as the file name have a forward slash in them. ie HLJ1/2. The file ends up being named ‘2’. So it only uses whatever is after the forward slash. Thoughts?
So I'm trying to figure out if this will work for several items on a page. For example: I have 45 name titles and 45 phone number titles on my art board. Basically I want each one of those to have a different name and their associated phone number and want them to auto populate from the csv file. Is that possible. Basically it's like a mail merge that you can do with word to print shipping labels on an avery template and have it populate all at once?
same question here...did you find a solution yet? thanks
when I type @image in Excel, it said "the function is not valid". What to do sir ?
If you're in MS Excel, you should type an apostrophe ' before the @ symbol like so: '@image
That will tell Excel that you really want to place the @ symbol and not start a function. I hadn't run into this when I made this video because I always used NeoOffice or LibreOffice instead of Excel, and they didn't automatically trigger a function when using the @ symbol.
I seriously can't thank you enough for this script. It has improved my workflow by about 300%, no exaggeration. I have one request, which I don't know how big of a task it would be, but could you add the ability to change text color. So 001.pdf might have blue text, 002.pdf has red text, etc. Maybe setting it by hex colors?
+Patrick Glenn There's a technique for this, which is written here: www.linkedin.com/pulse/illustrator-variable-data-advanced-techniques-recoloring-vasily-hall
Hi! Thank you for this! I'm facing a problem tho. I'm getting a "The current values have not yet been captured, and will be discarded upon switching data sets" error everytime the batch tries to change the data set to save. It means i have to click "Yes" everytime it saves a new file. Am i missing something? Can you please assist with this?
Hello John and Vasily, thanks so much for this, it is really helpful. I have used the script many times for text-only designing, but today I wanted to use it with an image as well. I am using Illustrator CS6 and have the newest version of variable importer installed as well as the legacy 7.1.3 version available to use. I have tried both of them, and they are working great with the text as before, but the linked image is not being replaced by my chosen replacement images. The replacement images and the linked file are all .png files. Is there something I can do to make this work? Thanks in advance.
EDIT: I actually just got it to work 30 minutes later, all I had to do was make sure the size of the linked image was the exact same as all my variable images. :)
Hey Kevin, one common problem is that when using Excel you need to put an apostrophe directly before the "@" symbol in your image header to let Excel know that you're not starting a formula.
This is only for Excel. The open source and other spreadsheet programs don't do this as far as I know.
If that's not it, can you use the contact form on my website and get in touch with me via email? Then I'd like to get ahold of your actual files and see what the story is...
Hey! I've been using this guide for a while now and really appreciate it. Any ideas about the following error?
Proper XML Syntax isn't followed by some variable name(s)
Element names are case-sensitive
Element names must start with a letter or underscore
Element names cannot start with the letters xml (or XML, or Xml, etc)
Element names can contain letters, digits, hyphens, underscores, and periods
Element names cannot contain spaces
(All names are going to be Auto-replaced):
I can't find the issue ANYWHERE in my CSV or AI file. When I import, I can't cycle the datasets either.
Is there a way to have variable format options like background color, font color etc
Yes, but it takes extra scripting to do. I'm working on a pro-level importer/exporter though which would make these kinds of problems accessible to non-coding users and will require far less time than the method here: www.linkedin.com/pulse/illustrator-variable-data-advanced-techniques-recoloring-vasily-hall/
Hi and thank you for this useful tutorial! Unfortunately, as others in this comment section, when i try to do it with images i get this error "The filter cannot be complete because of a bad parameter error". Can you kindly help me? Is there a way to communicate with you and mybe sharing the file i'm woring on? Thank you again.
Can you use this to to create a multiple page pdf, make every variable entry a different artboard?
Using some wild action techniques, it is theoretically possible - but not straightforward. For example, in the action you'd have to have a part where you lay down a rectangle, center with current artboard, then move it where the next artboard would be - convert it to an artboard, and also make sure that all your stuff gets properly duplicated to the latest spot.
when we are importing images, can we use a url from the internet as opposed to files on a local drive?
No, but maybe one day
@@Vas1ly looking forward. amazing tool, so helpful. thanks!
Rex David say, I am thinking of making a pro-level extension of this script. It will allow you to get images from URLs and the whole shabang. Of course it will download each of the images first as that's how it would need to work in Illustrator- so they will still end up on the hard drive.
I will also look at ways to make it work with something like the google sheets, etc.
My question to you as potential customer is, what's your ideal price point where both points 1) you want to pay for it because you like using and and 2) you have to use something like this and the next better solution from this one costs too much, meet.
@@Vas1ly well, right now that just as easy as feeding the url pile to a download manager and then using local address to import. would people pay to bypass that step... well probably not. maybe with more added value, yes, depending on the value add.
@@RexDavid I suppose you may be a power-user with a workflow where using this feature would not be a high-frequency occurrence. It is noted. Now, if you say, had to do this download manager step many times per day or per week, maybe then your valuation of this would be a bit higher. After all, the entire VI is just sugar and the native process plenty available via manual inputs - in some cases it's actually an overkill. However, you are right as indeed there would have to be more features to legitimize a paid product. Unfortunately, and regardless, the web-fetch feature for the VI would take it up an order of complexity such that it would have to be financed.
is it possible to do it but to change the size of an object? like a chart?
Hi Alan, the VI script doesn't really do that, but if you needed to change the size I suspect you'd have to incorporate that change into your save action by performing a transform, then undo or otherwise put it back to the existing size before finishing the action and it moves on to the next data set.
Or, you can size the chart to the size you want it, and then with your linked object you can play around with the Placement Options found in the flyout menu in the Links panel. If you set it to "File Dimensions" then your chart should come in at the original size.
Not ideal, but i'm thinking you'd need further scripting to dynamically change the images any other way.
THIS IS WHAT I AM LOOKING FOR!!! THANK YOU!!
Dude this is awesome! Thanks for making this video!
my AI 2020 won't show this option "import .csv options" i can't do the bind by name setting. it's frustrating. hope you have an update setting for 2020 users like me?
I can load the dataset. Text+images, but If I click to next dataset It blink a message every time.
The current values have not been captured, and will be discarded upon switching data sets. Proceed?"
I have multiple paragraphs to import as part of the variable data. Is there a way to delineate the text as a "chunk" (the paragraph contains commas) so that it exports under the appropriate column from the .csv file?
I figured this out. It had nothing to do with commas or paragraphs. My variables were on named layers, BUT they weren't in the same layer group and the script didn't like that.
Thanks for this video tut, a real help and time saver!
Hi John, very helpful video. Using illustrator CC. have got it to import variables for text but it won't bind them automatically for some reason and i keep getting errors for images "The filter cannot be complete because of a bad parameter error". Would like to know if it's down to me or is just the variableimporter script won't work on CC. Any help would be appreciated. Thanks Ian
Can you privde a link to any screenshots?
hi, is it possible to have multiple instances of the variables with different values on the same document? Like for example a restaurant menu?
yes!
Many thanks John! It works
Need Help!!! Ran the script, imported my variables, and received the dialog box that my variable data has been imported. However, when I click on "Cycle Update All Datasets", they do not update on my screen. Also, I noticed there are no labels under "Objects" under the Illustrator Variables window. What am I missing?
Cycle Update all datasets is meant to go through all the datasets, display them and 'update' them to what is seen on the screen. This feature is mostly for the Illustrator errors related to the use of visibility variable, and isn't really for display purposes. The absence of labels in the Variables feature may speak to another Illustrator UI bug, try to close this window and open it again, or open a new blank document, open the Variables palette and close it, then go back to original document. Maybe then it will cause the display inside this palette to refresh. I hope this helps, let me know either way.
May i ask for the placeholders, should it be TIFF always or can it be JPG? I don't know what am i doing wrong as I'm able to import the text but unable to import the JPG. Is there a certain way I've to save the images?
Hey Larry. You should absolutely be able to import jpegs instead of tiffs.
Are you making sure to include the '@' symbol in front of your header name in your spreadsheet?
If you're using Excel, sometimes you have to put an apostrophe in front of the @ symbol in order to tell Excel not to turn that field into a formula.
Also, are you using the latest Variable Importer (v8)?
what exactly happens when you try to import the images?
John Garrett wow! Thanks for the fast reply!! I used the '@image like you said and i used a tiff placeholder like you did in the video and my images were all JPG but the wierd thing is that when i did a test, it says that images 0/3. It could detect the images but cant import it. Im using the latest i downloaded from your site
No worries, Larry! As Vasily said earlier...this is what we do :)
Ok, so in the File Paths tab, you're using the Prepend Image Path button and selecting the folder, right?
In the first tab (Variable Display), it definitely says "image" under the Type column? See if one of those might be the problem...
Im using prepend (otherwise it wont detect) it also detect the images type.
Alright, can you jump over to my site and use my contact form so we can continue this by email?
Once we're in contact that way maybe you can send me the files so I can take a look at them myself.
When we get it figured out I'll post back here so others will know what happened
Great video! I've managed to create variables with the csv, however I'm trying to accomplish something slightly different. Is it possible to have one file with an instance of each record? I'm designing product labels, which will be opened by another program (Omega and plotted on a Gerber), so Illustrator has to be used. Each label needs a different model number.I wanted to create a template that could be opened, csv updated, and everything updates in the Illustrator file. I followed this tut and got it to work then duplicated it multiple times. I then tried to go to subsequent objects and change the record, but it's only changing the original...
This exports multiple files from one file, so each time you want to update multiple files, they have to be re-exported. Did you utilize the Batch Actions for your export? Or maybe I am understanding wrong, are you actually talking about how when you open the exported files, they no longer have variables in them?
I didn't need the action portion of the tutorial. I actually was able to get it using the next video that used the RenameArtFromText script. I wanted multiple records in one file (artboard). I created an Illustrator template (.aia) file and a template Excel file, which works nicely. Thank you!
Alright I came here to send you to the next video, but you already found it. Glad you got it working!
Thanks! I was re-watching the video and saw a pop-up that you had created a version for multiple records on one page, so I clicked on it and that's exactly what I needed! As I understand it, there's no way to update the data in Illustrator, correct? What I've done to "update" instead is make changes to the csv, delete all variables, then use the VariableImporter again.
Yea, but also, it is supposed to automatically remove old variables without you having to be concerned about it.
Amazing help, thanks John and @Vas1ly! I cannot wait to try with a live project! One question though, is there a way to make only part of text in one text frame a variable, like in InDesign? Let's say we have a centred block of copy but only one word half way though the second-to-last line needs to be a variable, and that word might be 3 or 14 characters long. I'd of course want the copy to stay centred despite the length of the lines. All tutorials I've seen deal with only separate variable text objects. Many thanks again!
I forgot to ask, is there a also way to predetermine which layers are turned on & off for which dataset, or would that be a manual process afterwards? Or can native .ai images be used to be pulled in as variable data images?
@@madinagoodway You can use the visibility variable but you have to manually attach those to layers cause the script can't attach variables to layers but you can through the UI - it's a one-time setup so hopefully there aren't too many layers!
THIS REALLY HELPS THANK YOU VERY MUCH
Even until today i still rewatch this video when needed
is it possible to set a font for the imported text to use? Say I have several Names that need to be filled but those names need to be in 3 different fonts
Not so much, but you can have all the fonts inside pre-made text frames, each bound to the same variable for text, and also bound to a variable for visibility. This way you can hide the ones you dont' want and show the ones you desire to be shown.
Hey John, I tried to run the script and select my .csv file, but it won't let me select a file to run. I am simply trying to create a sequentially numbered set to apply to a parking permit decal I created. I would like to be able to number 1-1000 for example with Excel, and then have the stickers duplicated with each number increasing. I created an excel file and I can't seem to make it work with this script. Any advice would be greatly appreciated. I am using Illustrator CC, if that makes a difference. Thanks!
+sleeplessinva sorry I missed this! When you say it won't let you select a file, do you mean it's greyed out and you can't even click on it? Or are you getting an error at all?
+John Garrett Yea i have the same problem, All Greyed and cannot select any item, im using Mac Office 2016
+Ahmed Adel so to be clear, you exported your csv file from Excel, then when you load the script from Illustrator, you you can't select it? I know someone else in the comments discovered that their Mac was adding an invisible file extension to their files. So 'myfile.csv' would look fine in the Finder, but when you used Command-I to Get Info, they would see the file was actually named 'myfile.csv.txt' or something similar. Deleting the extra file extension there solved the problem, though.
is it possible to export to png instead of saving as eps?
hi!! this is so amazing...i'm having one tiny problem. when i export, i'm trying to export as a .png and i have to "replace" each file. it won't let me save all 300 items in one folder without going through and renaming each one. any ideas? the only one i can get to work is .pdf or .ai. and i really need .png or .jpg...please help!! : )
Thank you very much... amazing you saved my day!!
hi. its very helpful for us. i cant write @ sign into excel. would you please can help me to do that.
In Excel you have to put an apostrophe - ' - in front of the @ symbol so that Excel doesn't treat it as the start of a formula. I found that out the hard way myself...!
tx buddy. i tried too much but the xml file shows error when i put it into illustrator.
I have exported the csv and can see the file and select the file when I run the script however I get the following error message once I click okay
Error 21: null is not an object
Line: 1673
-> var type= df.displayName.match(/(\.txt$|\.csv$)/1)[0];
What am I doing wrong?
+Gini Caradori
How did you download this script, or, did you edit it somehow? There should not be a "1" in there, this line is actually:
var type = df.displayName.match(/(\.txt$|\.csv$)/i)[0];
Also, are extensions hidden or appended with any other characters on your text file so that it doesn't end with ".csv" or ".txt" ?
John, I'm using Illustrator CC 2017 and after clicking the variable importer script, the options panel that opens is different than yours in the video. After choosing my csv file I am getting a "Variable Name Correction" window that opens and says "Proper xml syntax isn't followed..." Not sure what I may be doing wrong but I can't get the script to work. Any thoughts?
Try and make sure your column titles don't have spaces.
I actually just figured it out! I deleted all extra columns and row in the csv (using numbers on mac) and then had to manually connect each variable name with the "make object dynamic" and it works perfect.
Well, you didn't have to manually do it - but with some more practice you'll get there! Good job!
Hi Christopher, I'm glad you got it worked out! Yes this video is using version 7 of the Variable Importer. I have a more in-depth course (2.5 hours) on Lynda.com that covers version 8, if you're interested.
It looks like you've got it working, though. Vasily makes a good point too - you can skip the manual connect as long as you have your objects named the exact same thing as your column headers, then choose the "Bind by Name" binding method in the Options screen. Saves quite a bit of time, and every little bit helps!
Just let me know if you have any more issues.
wow! Thanks! This is going to really shorten my time!
So I've tried this a few times now to address some envelopes, but what keeps happening, if I follow every setting above, is that the data from the first envelope/line in the CSV gets saved over and over again, instead of my imported data. What is going on?
Hi Lisbeth, are you getting a bunch of separate files with the same data in it? Or is it saving over the top of the same file over and over again, and you end up with only the one file?
Also, are you using the new version (v8) of the Variable Importer? The interface looks entirely different from what's shown in the video (v7). If so, do your data set tests come back ok?
And finally, you're making sure to "Save a copy..." and not changing the name at all?
I solved it- there was ONE variation that was different. Now my issue
though, is that centered text and items aligned with one another move
all over the place. Still faster than doing everything separately, but
I'm wondering why this happens.
Hi John,
This script is a safer. However, I am not sure why the object and the variable keep breaking link every time i open my AI template again. I have 133 fields to be link on a constant basis.
Thank you once again.
Hey Kai, I'm not sure if I'm reading you right, but unfortunately the script doesn't automatically re-import or update the data.
So for example if you import, then update your csv later, Illustrator will not "know" about those changes and you would have to re-import again. InDesign's Data Merge does a (slightly) better job at this by at least letting you know that the csv has changed, but you still have to re-import (re-merge) even then.
Let me know if you were talking about some other behavior though.
Hey John, thanks for the reply. Apologize that I was being unclear. I have written too short about my issue. I will write you a more detailed question on your website. Thank you.
Thank you so much, you saved me a lot of time :)
I think I've done everything right but it doesn't bind my records automatically. Names are the same and binding is set to name. I'm running on windows and use .txt file. CSV created in excel is not seen by the script, first collumns don't appear as the variables. Thanks for help.
Wojtek Pająk Hey man, you're sure you have the "objects" named, and not just the layer, right? If so, make sure none of your variable objects are grouped or in a compound path. I noticed it won't work if they are.
So you're not using a .csv file, but a .txt? I'd go back to the .csv, and make sure it is the right encoding when you save it. It should be in UTF-8 encoding. Also, make sure there are no spaces or special characters in the variable names in the top row of your csv file. Hopefully this helps somewhat. Let me know if it still doesn't work out.
Wojtek Pająk I'd like to see your file, can you please send to vasily.hall@gmail.com ?
John Garrett Hey, are you sure the named items do not work with auto-binding when they are inside of groups?
+Vas1ly I had trouble with it before, although I can't remember which version of Illustrator I was using. Now I always make sure they aren't grouped just in case. I *could* be thinking of the custom script you made that time, though...
Is there a way to use a PDF or EPS as replaceable graphics? Have not gotten it to work so far.
Yes, but you have to use the placed file (Image) variable. Make sure your placed images have the "X" through them to say they are in fact placed and not embedded.
I can't seem to save the .CSV the way you show here (with the columns). It gives me an 'Varialble name Correction' window while importing. I have to create a layout like this:
name,number,team_name, ect.
Why do I face this problem? Can anyone help me? I can't ask clients (or co-workers) to create an excel like that.
Thanks in advance!
If you open your CSV , do you see all your items in 1st column separated by semicolons?
Vas1ly yeah I do, what can I do about that ?
Yea, that's the nordic format.. would you be able to use a find & replace, and change the semicolons to commas or tabs? If your data contains no commas or tabs, you can do either one. Then it should work.
There should be a way to update your CVS file without having to re-import. Is there a way??
Not unless there's a plugin which does this, and plugins are more complex to make and are more version-dependent than scripts. The plus side would be the possibility of document binding without using any of the XML stuff. (This script here just makes and deletes a temporary XML file based on the CSV data) However, the cost to develop such a plugin could be sizable, so it would take some funding...
Vas1ly Wish i could fund it
It would take usually a bunch of funds because I think such a project would require a lot of time and effort. However, it may be possible to create an HTML panel extension in the newer CC versions, which could simulate 'linking' by running every time you activate an Illustrator document: it could check a recorded associated .csv file for a modification date since last, and auto-reimport. Still would take some time, etc. All being said, the VariableImporter script alleviates most re-import choses with the "presets" feature, making repetitive categories of jobs easier to launch. Have you practiced utilizing any presets?
When you exported as batch each file received a unique file name base don data set. When I export as tiff I all files get only the file name which creates a number of overwrite requests. How did you get your unique names on each file in your batch?
Hmm I don't recall ever having that problem. However...I just did a quick test and I see that I was getting errors *UNTIL* I changed the filename in the Export window.
For example, my .ai file was named "numbers.ai", so when I started recording my action and chose Export, Illustrator was going to name the file "numbers.tif". I added a 1 to the end, so it became "numbers1.tif", then continued through the export options.
Then when I ran my Batch, the Destination dropdown was set to "none", then bottom checkbox for "Override Action Export Commands" was checked on, and I chose "Data Set Name" for the File Name option.
With these settings Illustrator spit out many separate files all named for the dataset name, and I got no errors.
Somehow, I never had to do that before, though. Can you tell me what version/platform of AI you're using?
John Garrett thanks for the info! I will retry today and let you know how that goes!
Awesome Yes that solved it.
I am using adobe Illustrator CC
Did you design this script yourself?
glad you got it working! And heck no, I didn't write this script lol. It was made by Vasily Hall, and he reached out to me hoping to get some exposure for it. I thought it worked so well and could really help people complete their work faster, so I did what I could to get the word out. All the best!
Thank you so much! I watched this video , but when i switch between images in the records a messege appear " filter can't complete because of unknown error "
What can I do ??? ... and I have one another question how can i save each data set to a jpg to print it instead of eps or pdf
Thanks
Are you using CS5 by any chance? And yes you can export when recording your action to JPEG. Record your action and export instead of saving pdf or eps.
No , Iam using illustrator CC 2017 for middle east ... I made all the steps in this video until 12.10 , assigned the variables to objects by clicking make text dynamic , and so make linked file dynamic to assign photos ! is this step is true or not ... when the process complete and i begin switching data sets by using arrow this message apears " filter can't complete because of unknown error "
When you do the import dialog, did you do the click action in Test tab to ensure all referenced files are located and not missing?
yes they are all located in the test tab and not missing . is the vesrion of illustrator is the problem or what !! ... if you need any screenshot for any step i made please tell me
hi Ramy, are the files on an external drive? Can you try moving them to your desktop or someplace else? Maybe the path is the problem?
Also, try using the named objects for your linking, by naming the objects themselves in the Layers panel, then making sure your csv headers match the names of those objects. maybe the binding is getting screwed up somehow when you do it manually.
when I try to save the .jsx to my computer it only allows me to save it as a .txt format, how do I ge the.jsx? any tips? I'm on a mac.
+katrinafasho Hi Katrina. You're clicking the "Raw" button first, right?
When I save from the browser tries to save it as "VariableImporter.jsx.txt". At least it does for me in Chrome on the Mac. You can save it that way and just delete the extension from the finder, or delete the ".txt" in the save dialogue box and click the "Use .jsx" button when you're prompted.
+John Garrett Thanks John, I actually figured it out. I had tried to just delete the .txt but it wasn't working I had to right click on the file and go into "get info" and under name and extensions delete it there and go through the other dialogs that followed.
Now I am wondering if you could help me figure out how I can save all the variables in one single file ? I want to print them out without having to do each one individually. I have 35 files, so seems tedious to have to open each file and print 35 times. Also I was hoping to print multiple on one page. I am not a designer, so pretty clueless here >_
+John Garrett wow. nvm, file merge so easy. thanks again, great tutorial.
i am not getting images. I dont know why image is not showing. text variables are working
Thank you so much for this video!
Have you run into Ai crashing while trying to import to csv file? I did this tut on another project with 520 entries and it worked, trying on another project of the same nature with 960 variables and the process crashes Ai.
I have run into this before with someone who contacted me about crashing. It ended up being a special invisible character in one of the fields that was causing the crash. As soon as we deleted it then it worked fine.
In your case I would delete half the spreadsheet and then see if it imports. If so you know the problem is in the other half. If not then the problem is in the half still in the sheet. Then keep deleting half of the entries each time until you narrow down the culprit(s).
@@JohnGarrett Now that's an idea!. I am seeing on my clients so project that the red/square is visible in a few areas. This just might be it. Thanks again John for your responses.
Turns out that the auto-binding feature causes a memory leak on high-variable counts, although I think in CS5 it wasn't an issue, or that I was successfully able to bind about 2000 variables in CS5. The problem is that iterating through Illustrator variables in script causes each one to go a little slower, until the app goes unresponsive completely. I'm considering making a Batch-Binder script which could at least allow people to do binding in batches of 100 variables or so if others are experiencing this issue. I was definitely able to reproduce it on CC2018 in both Windows and Mac!
That would be fantastic, your script is powerful to a point as we both found out.
Hey since you live around here, would you like to meet up one day?
Thanks a lot man :) This was so helpful !
Hi, I can't download the variable import file ;S
I keep getting an error when running the script. 'Error21: undefined is not an object. Line: 1697 -> var columnCount=toplineArr.length;' What does this mean?
+J. Williams can you share your data file by any chance? The old script seems to not like something about its formatting.
You also can try the new version 8, which may work better, or may reveal more clues about the error.
+Vas1ly I installed the new importer and it worked one time for me. I haven't been bale to get it to work since. The new error I am getting is "There appear to have been no variable names in the data file 'names.csv'". Any ideas why I might be getting this error?
+J. Williams can you share the csv file with me? Also what OS and Illustrator are you using?
+Vas1ly I am using CC+2015 with El Capitan I am trying to figure out the best way to share the csv file. i cannot post it directly to this conversation.
+Vas1ly I emailed you the csv
I followed these steps exactly but when I go to the next data set, no data comes in... Please help!
+jdrake Sorry I'm late with this. Do you get an error of any kind when you try to switch to the next dataset? Are you absolutely sure the data is bound correctly to the objects? If you're still having problems let me know and I'll try taking a look at the files to let you know what went wrong.
i cant find any variable action in in the action box, only default action is available no variable action pls help
HI Krishna, did you make sure to actually record your action first? If not you'll only see the default actions there.
Also, you have to make sure to have the correct set chosen in the Set dropdown. If you recorded your action into a new or different set then it will only show once you select that set in the dropdown.
thanks alot it worked
Great Russian guy Vasily!
Yay!
Feel like I'm doing everything correctly but after the import, only "variables" are listed in the variables panel "Objects" remain empty. i.imgur.com/DlUGOjd.png Help appreciated: Running CS5 on Windows....
+ SUBTUBESCENT hey what binding method did you choose in the Variable Importer? Did you make sure it was on "Bind by name"?
Also, did you try binding them manually after the import by selecting the object, then selecting the variable in the Variables panel, and then clicking the "Make Text Dynmaic" button at the bottom of the Variables panel?
At least then you'll know if they actually will bind. If they don't then somehow there's something else wrong...let me know when you get a chance.
Thanks for the quick reply John. My import dialogue doesn't look quite like yours but I am using 'bind by name' as per the instruction. I havent tried binding manually just yet - see below for my process...
i.imgur.com/w3t47qr.png
i.imgur.com/wotBLuY.png
and here is the CSV: i.imgur.com/tICyRrs.png
Ok so you're using version 8 instead of version 7 like my video. It *looks* all good from your screenshots.
Is there any way you could jump over to my site and use my contact form? Then once we're in email contact you could send me your files. I'd like to take a look. I'm on the Mac, but I do have a version of CS5 so I'd try it in there first.
ok cool - thanks John, I'll do that later tonight - You're a star! :)
Yeeeeessssss!!!! Thank you for sharing this
GREAT! ITS WORK! THANKS!!!
it was fantastic helpful!!!!! thanks
This is great! Thank you.
can i change font type from excel too?
It may be possible with use of a special script which could take your variable text contents and replace certain contents of a text box with combined text. Maybe one day I can write such a script.
How to copy all images name at a time?
Copied the folder-script, but even after restarting the script is not showing there
I DONT HAVE CSV ON MY ai HOW TO ACTIVED THAT THINK?
Aw man, the variable doesn't work with the current version of Ilustrator 2021! But it looks great! (It crashes whenever you click "Import Data Sets".
They supposedly fixed it in versions 25.1+
Been using this for quite some time now. Thanks for this tutorial.
I have a question, how do you batch export as PNG directly from AI without having to export as eps.
Thanks John - GREAT!! :)
Thank you live saver!!
It works great, except for images, it says the format is not supported
What kind of image files are you using?
Also, you're not using Illustrator CS5 are you? The images won't work in that version unless you upgrade to CS5 15.0.2
Thank you so much
Wish I could get it to work.
Hi, can you tell me exactly what's going wrong? Hopefully I can help!
I have a simple design business cards with variable data of names, phone, and email. I try to use an excel spreadsheet exported as comma separated data and your script to change this data. Once it imports, it never changes anything. Nothing ever happens. I have no idea why not. I'm thinking of taking your Linda course but not sure I want to watch 2.5 hours of something just so I can change email addresses easier. I think at this point variable data is probably too error-ridden and time consuming than just manually doing it all by hand. Wish it was easier but it is not.
I'm guessing the binding step is not working. Do you have it set to Bind by Name at the bottom of the Options screen in the "Auto Binding" section? (I assume by now you're using version 8 and not version 7 as I was in the video)
If so, when you use the "Find Art" button or run the test in the Test screen does it say it actually found anything?
If you used Bind by Name, what I suspect could be happening is object names in the Layers panel are incorrect due to an Adobe feature that interferes with the import feature of the Variable Importer when the Bind by Name method is chosen.
To explain: the names of your objects in the Layers panel cannot be the same as the text on your artboard. For example, if the text on the artboard reads "email", then the name of the object in the Layers panel must be changed to something (anything) else.
When you type out text on the artboard, Illustrator adds a *preview* of that text in the Layers panel. This is NOT the name of the object. But if they both say "email", you can easily be fooled into believing that the object is named correctly.
Instead, you need to double-click on the object in the Layers panel and then name it to something else. Whatever you name it to here needs to be the name of the header in your .csv file.
Honestly, I didn't know this at the time I made this video. I wish I would have because I believe a lot of people, even here in the comments on this video, have run into this problem. I do mention it in my Lynda course but that hardly helps here.
Anyway, I *think* this is what your issue is, but I could still be wrong. If you're interested in tracking down the problem then let me know.
I appreciate you trying to help. I'm not really sure if I'm doing this right. Going to see if I can figure out the answer from your Lynda course. If that fails, I will just assume Illustrator's variables don't work at all and will never try again. It just is a great deal of time to "automate" something that ends up just being significantly slower than entering it all by hand.
If you'd like me to take a look at the files, can you please hop over to my website and click my contact link, then use the form to send me an email. Once we're in email communication you could shoot me the files, if you're still interested.
If you go the Lynda route, I begin the course walking through the default Adobe Method of using variable data, so if you skip that first chapter it would save you some time.
Either way hopefully I can help one way or another.
Amazing! Thanks, man! =)
not working in cc
You have a really great teaching style and make things seem far less daunting. Thanks for the tutorial. If I can get this technique to work it will save my sanity however, I'm having a problem before really getting started.
I'm working with Illustrator 10 (pause for laughter). While it has the variables panel and recognizes my selections it seems the only script extensions it recognizes are .js, .vbs and .exe.
Anything .jsx doesn't even show up if I try to browse on the File>Scripts. Try as I might I cannot find a .js version of the variable script nor do I know if it is possible to convert one to the other much less go about it. Any thoughts? Please?
My project is fairly simple - decorative cards with first name, last name & table number. However there is to be around 100 of them, it's a bit of a rush and it may work out that I need to do the printing myself - so any and all help or ideas will be gratefully accepted.
Many thanks!
So I know from working with Vasily that they got it working on CS4, but I don't know if it actually will work with Illy 10.
Did you try just changing the extension from ".jsx" to ".js"? You never know!
Failing that, can you download the trial of Illustrator CC? 2018 just came out, and even if you've had a previous trial you should still be able to get a new trial on this. Then you could go to town and finish your project.
OR...if you're really, really desperate you could try doing it the old "pre-variable importer" way. Check my previous video on How to use Adobe Illustrator variable data. This way is a bit more involved, you have to use an online converter to change the spreadsheet data into the XML that Illustrator wants, then you import the XML Library using the "Load Variable Library" command on the flyout menu of the Variables panel.
The converter I reference in the video is gone now, so you'd have to google search "Mr. Data Converter" and use that one (it will be on Github).
Finally, if you have an older version of InDesign it might be better to just use their Data Merge feature. It was quite mature even many versions ago, and there's always a wealth of info on InDesign out here, so you don't have to struggle to find info like you do with Illustrator.
Actually I did. I have had a surprising amount of success with that trick - but this wasn't one of them.
It gave me:
Syntax error
Line: 27
-> #target illustrator
The very, very little I knew about code left my memory years ago so I can't even guess if that is helpful
I have actually seen references to a .js version of such a script (on websites which may have been from as far back as 2010) but the links are either 404 or feature the words "latest upgrade" - and a .jsx file. sigh.
I am mostly sure that I-10 can do this somehow since it has a variables panel (as well as doing graph imports) but its own help says nothing about these and finding tutorials for the helluv old school versions hasn't been very fruitful.
Sorry to go on and on. I tend to get this way when I'm trying to figure something out - and about a thousand other situations. Sorry.
Anyway, again if you can shine some light on this I would be thrilled.
And if this is ridiculously beyond your impressive resume I certainly understand and deeply thank you for trying.
I hope you have a smashing day.
So, with version 10 there's a very big chance that a lot of the scripting features this script uses may not be supported. However, you can at least try to get over the current error by removing the #target illustrator line entirely. If there's a #targetengine line, remove that too and let's see what happens.
Thank you! I will give it a try later today. Even if it doesn't work I really do appreciate you both taking the time to help me out.
dont work in Unicode text. only English and numbers
thnks a lot¡¡¡
Can I kiss you!!!!!! Thank you so much, such a time saver.
A hug will do just fine, thank you! :D