Contact Sheet

A JavaScript extension for Adobe Illustrator to create a contact sheet from a folder of SVG files. The script allows you select a folder of SVG files and imports and arranges them in a grid pattern as a contact sheet. You can specify the page width and height, number of columns and rows, and the scale of the imported files.

Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.

Installation

To use this script, you will need to copy the entire Contact Sheet folder to your Illustrator scripts folder, then restart Illustrator. Follow the steps below to install.

  1. Unzip the Contact Sheet ZIP archive.
  2. Copy the Contact Sheet folder to Adobe Illlustrator/Presets/{language}/Scripts/ where {language} is your chosen language. For example, if you have a US version of Illustrator this will be en_US.
  3. Restart Illustrator
  4. Once Illustrator restarts, verify that the script was installed by going to File > Scripts > Contact Sheet

Usage

  1. Go to File > Scripts > Contact Sheet to launch the script. You will see a dialog like the one below.
    Contact Sheet preferences dialog
  2. Contact Sheet creates a single artboard, imports a folder of SVG files you specify, and arranges them in a grid. Using the dialog inputs, specify the page width and height, the number of columns and rows, the scale of the imports (from 1 to 100 – do not include the percent sign). Once you have the values you want, you can click the Save Preset button to save these settings for future use.
  3. Click the Choose Folder button to select your folder of SVG files (NOTE: Contact Sheet was created to create previews of icon sets so for now it only works with SVG files).
  4. Double-check your settings and click Ok. Contact Sheet will display a progress dialog to let you know how many files are left to import. Once the files are imported and arranged, the file will be saved to the name you specified.
  5. If you checked the Logging? checkbox, you can view the log file in /your-home-folder/ai-contact-sheet where ~/. For example, on a Mac the folder can be found at /Users/yourname/ai-contact-sheet/ (or ~/ai-contact-sheet/ for shorthand). The preset configuration files can also be found in this location.Contact Sheet progress bar

Custom Configuration

NOTE : changing the default configuration can break the Contact Sheet utility. Proceed with caution.

You can change many of the default settings such as the location of the presets and log files, Illustrator version compatibility, etc., by editing the config.js file in the download.

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Contact Sheet by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

426 Words

Ai Merge

This script is a JSX (JavaScript Extension) script for Adobe Illustrator to merge a folder of SVG, AI, PDF, and/or EPS files into a single Illustrator document. The script creates a new artboard named according to the file name (minus the file extension), places the file contents, centers the object, and aligns to the nearest pixel.


Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


Instructions

Before You Start

This script has only been tested on Adobe Illustrator CC 2014. It was written to complete a one-off personal project. If you find it useful, fantastic. But I cannot verify whether or not it will work on every system.

Setup

  1. Place this script in Applications/Adobe Illustrator CC 2018/Presets/en_US/Scripts/

    NOTE
    If you are not using the US English translation of Adobe Illustrator,
    the `en\_US` folder will match that of your translation.

    Also, the Adobe Illustrator folder may have a different name depending on which version of Illustrator you have installed.

  2. Restart Adobe Illustrator to activate the script
  3. The script will be available under menu File > Scripts > Ai Merge.
  4. Enter values in the dialog for Artboard Width, Artboard Height, Artboard Spacing
  5. Choose the folder of SVG, AI, PDF, and/or EPS files. Nested folders are fine. The script will search through any nested folders for any files matching the specified file types.
  6. When the script runs, you will be asked to select a source folder of files you want to merge. The script will ignore any files that do not match the selected types.
  7. The script will create a new Adobe Illustrator document with an artboard for each file. Please note that Adobe Illustrator allows up to 1,000 artboards so the script will only work on the first 1,000 files it finds.
  8. If logging is enabled (in the startup dialog) the script will create a log file named ai-script-log.txt on the Desktop of your computer. To turn this off, set the variable named logging to false near the top of the script.

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Ai Merge by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

There may have been other scripts that inspired or were used in the creation of this script. Any omissions of credits are purely accidental. If you recognize an omission, please let me know and I will happily add credit where it is due.

The JSON parser was written by Douglas Crockford. You can get a copy of the original code at https://github.com/douglascrockford/JSON-js.

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

411 Words

Center on Artboards

A simple JavaScript for Adobe Illustrator to select all of the artwork on each artboard, group, then center it.


Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


Installation

To use this script, you will need to copy the file `Center on Artboards.jsx` to your Illustrator scripts folder, then restart Illustrator. Follow the steps below to install.

  1. Unzip the download archive.
  2. Copy the enter Center on Artboards folder to `Adobe Illlustrator/Presets/{language}/Scripts/` where {language} is your chosen language. For example, if you have a US version of Illustrator this will be `en_US`.
  3. Restart Illustrator
  4. Once Illustrator restarts, verify that the script was installed by going to `File > Scripts > Center on Artboards`

Usage

  1. Go to `File > Scripts > Center on Artboards` to launch the script.
  2. The script will automatically loop through each artboard, select the artwork, group it, then center it.

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Center on Artboards by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

160 Words

Resize Artboards

A simple JavaScript Extension script for Adobe Illustrator to resize all of the artboards in an Illustrator document with user-provided width x height.


Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


Installation

To use this script, you will need to copy the file Resize Artboards.jsx to your Illustrator scripts folder, then restart Illustrator. Follow the steps below to install.

  1. Locate the file Resize Artboards.jsx in this download
  2. Copy the file to Adobe Illlustrator/Presets/{language}/Scripts/ where {language} is your chosen language. For example, if you have a US version of Illustrator this will be en_US.
  3. Restart Illustrator
  4. Once Illustrator restarts, verify that the script was installed by going to  File > Scripts > Resize Artboards

Usage

  1. Go to File > Scripts > Resize Artobards to launch the script
  2. At the prompt, enter the new artboard dimensions as text in the format WxH, for example, 128×200 where 128 will be the width in pixels and 200 will be the height in pixels.
  3. Click “Ok”.

Resize Artboards dialog

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Resize Artboards by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

178 Words

IconJar Extractor

Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


IconJarExtractor

This AppleScript droplet extracts icons from an IconJar archive and renames the icons using the tags set in IconJar.

Usage

  1. Download this script to your Mac computer and extract the ZIP file.
  2. Double-click the file named `JSON Helper.zip` and copy the extracted file to your `Applications` folder.
  3. Drop 1 or more IconJar files onto the IconJarExtractor droplet.
  4. The script will create a folder on your desktop named `iconjar-extractor`
  5. The icons will be extracted from your IconJar file and renamed using the tags you have specified in IconJar. If no tags have been specified, the name of the icons will be used. If no name has been specified, the script will error out.
  6. The renamed icons will be saved in a ZIP file in `~/Desktop/icon-extractor/{name}-{uuid}/out`

Changing Settings

The script supports some minimal configuration in the form of an INI file. If you save a file named **iconjarextractor-config.ini** to the Desktop of your computer, the script will automatically import it and change the internal default settings to those you specify.

The available options are:

Setting Accepts Description
logging 1 or 0 1 for true, 0 for false whether to enable logging
debug 1 or 0 1 for true, 0 for false wether to enable debug mode
output string A POSIX path the root output folder (default is ~/Desktop/iconjar-extractor/)
password * string The clear text administrator password to allow the script to perform privileged tasks (only writing to files/folders)
* Storing your password in clear text is risky. You should only use this script on your private computer and make sure only you have access to it, or lock it when not in use.

Logging

The script will write log messages to the Script Editor logger (for developers only). To enable logging, simply change the `logging` property in the script header to `true`, or add `logging = 1` to a `iconjarextractor-config.ini` file on your Desktop.

Debug Mode

This script also comes with robust debugging for help trouble-shooting. This is primarily intended for developers and for those requesting support. To enable debug mode, create a file on the Desktop of your computer named `iconjarextractor-config.ini` and add a line with the text `debug = 1`. The debug log will be saved to the root of your output folder.

Output

The output folder location.

Password

CAUTION! Saving an administrator password in clear text is inherently risky. In fact, it is not advisable. However, the script may require an administrator password to write to some folders. If you do not specify a password in the INI file, the script will prompt you for your password. The INI support is offered as a convenience but you use it at your own risk. in order to minimize the risk, the script will give you the option to automatically secure delete the INI file upon completion.

What is this for?

Icon marketplaces like Iconfinder can accept ZIP uploads and will use the names of your icons to automatically tag the icons. This script allows you to extract the icons from your IconJar files, rename them, and quickly upload them to Iconfinder without having to spend time manually re-tagging the icons.

Reporting a Bug

Please report any issues to the Issues page on github or via email at scott_at_atomic_lotus_dot_net.

When reporting a bug, please include as much detail as possible including:

  • The year and model of your Mac computer
  • The version of MacOS running on your computer
  • The IconJar file you’re trying to extract would also be very helpful

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

IconJar Extractor by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

Support

I am happy to provide limited support at no charge. I am also available for hire for custom scripts and more complex support issues.

Change Log

2018-09-05 Fixed a bug in ‘on increment_folder’ that caused the script to error out when used as a droplet. For now the calls to ‘logger’ were simply disabled. A possible work-around is also to just use the app via double-clicking the desktop icon rather than by dropping files on the icon.
2018-04-29 Added support for an INI config file to change some settings. See “Changing Settings” above
2018-04-29 Added comments to all functions
2018-04-27 Added feature to allow users to save password in a text file instead of being prompted for the password every time a file is processed. NOTE: This is inherently risky. Use at your own risk. Securely delete the password file after use. This should only be used on a well-protected, private system
2018-04-27 Added ‘on run’ as well as ‘on open’ handlers to work as a droplet and double-clickable applet
2018-04-27 Hardened the fix for file paths with file paths with spaces and/or commas
2018-04-25 Added a dialog when the script finishes indicating the file location as well as a button to open the folder where the ZIP file containging the extracted icons is located
2018-04-25 Fixed a bug related to file names with spaces or commas (IconJar or icon file names) causing the script to break

Road Map

  • Create a cross-platform, native app in Electron.
  • Add ability to review and customize tags for each icon
  • Add option to update the IconJar archive with the new file names
  • Add ability to import icons to Adobe Illustrator or Sketch from the IconJar archive

Known Issues

  • Currently the script cannot handle file paths or file names with spaces
  • Currently the script cannot handle file names or paths with commas
  • There is an issue in the ‘on increment_folder’ method that happens only when run as a droplet. The calls to ‘logger()’ cause the script to error out. The work-around is to run the script by double-clicking the deskop icon rather than as a droplet.

Acknowledgements

Thanks to Hemmo de Jong a. k. a., Dutch Icon for help testing (and his patience)

Thanks to MouseDown.net for graciously providing a free copy of the JSON Helper app for AppleScript to this project. Please visit their page and donate.

1,008 Words

Adobe CEP Extension Boilerplate

This is a pre-release CEP boilerplate for Adobe extensions. The code has the basic layout of an extensions palette to quickly start creating a new extension. This is a very barebones template so not much beyond the basics is included. I will add more as time permits.


Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


Installation

I have included a self-signed certificate and build script (build.sh) in the download. Just run the build.sh script to build the extension then use the ZXP installer mentioned below to install.

This extension has not yet been submitted to Adobe Exchange (but soon). For now, you can download the ZXP file in this repository and use Anastasiy's Extension Manager to install. Anastasiy's Extension Manager is a fantastic app.

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Adobe CEP Extension Boilerplate by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

108 Words

Ai Sessions

Ai-Sessions is an extension for Adobe Illustrator that will save the file paths of all open Illustrator files in {MY_DOCUMENTS}/ai-sessions/ai-YYYY-MM-DD-r[0-9].json so you can easily re-open open documents in your “work session”. The file paths are saved in a JSON object.


Donations

I am a freelance developer and your donations help me continue to create free resources. You can donate to this project using the button below. Every bit helps.


Ai Sessions Screen shot

Features

  • Save your open documents as a “Session” to which you can return later, even after closing your documents.
  • Give sessions custom names for easy recognition
  • Delete sessions when they are no longer needed without disturbing your files.
  • Collect your open documents to a new folder.
  • Collect any session from your list without opening or locating the files.

Installation

This extension has not yet been submitted to Adobe Exchange (but soon). For now, you can download the ZXP file in this repository and use Anastasiy's Extension Manager to install. Anastasiy's Extension Manager is a fantastic app.

Credits

You are free to use, modify, and distribute this script as you see fit as long as you maintain the copyright notices in the original source files. A link to the Atomic Lotus website would be appreciated as well. You must also extend the same license to users of your code. This is not to say that your original code must be open source, but the code from this project must remain free and open forever.

Ai Sessions by :

Scott Lewis <scott@atomiclotus.net>
http://atomiclotus.net

Disclaimer of Liability

This script is offered AS-IS without any warranty or guarantees of any kind. You use this script completely at your own risk and under no circumstances will the developer and/or distributor of this script be held liable for damages of any kind including loss of data or damage to hardware or software. If you do not agree to these terms, do not use this script.

129 Words

Adobe Illustrator Contact Sheet JSX Plugin

I don’t like performing tedious, time-consuming tasks, especially when those tasks are non-revenue generating, which means they take time away from things I could be doing to increase revenue. The most time-consuming and tedious task I have to perform over-and-over is creating contacts sheet previews of my icons. The problem is that every marketplace has different requirements for preview image sizes and so a new contact sheet has to be created for each marketplace.
Continue reading