Photoshop Calendar - script for compositing calendars

Updated 14-Oct-2005

calender_composite.js is a script to composite photo calenders with Photoshop CS2.

It's written in JavaScript and so should run on any platform, but is only tested on Mac OSX. You can pick up the script here : download calendar_composite.js

If you are using CS1, you may need to use this version : download calendar_composite_cs1.js, because I think layers are numbered differently there. Please let me know if this is true.

And here is how to use it :
1) First, go to Phil Penketh's web site and pick up the calendar templates that he kindly offers to the world for free :
http://www.pbase.com/455rocket/free_calendar_monthly_templates
Get the big monthly jpegs that are called 'original size' (2400x3000 pixels) and save them in a directory with the names jan.gif, feb.gif etc. You can go directly to : http://www.pbase.com/455rocket/us for weeks beginning on a Sunday, or http://www.pbase.com/455rocket/uk for weeks beginning, as God intended, on a Monday. Then select "jan 06 us.gif" (or "jan 06 uk.gif") and up will pop the first template. BUT you will probably have to go to the bottom of the page and click on 'original' to make sure you get the highest resolution version. Save this image, go back and click on "feb 06 us.gif", and you will find that the high resolution pic comes up immediately. Save this and continue with the other months. This is true for his 2006 calendar, hopefully I'll get back and check it's all true for 2007 and 2008.
You can of course composite those templates with your pictures by hand, but this script makes it easy to have consistency between pages, and to make different calenders for different people.

2) In the same directory as the templates, create a plain-text file with a list of the image files that you want to be in the calendar. The format of this file should be as follows :
# My calendar image list file. MRH Oct 2005
jan: my_jan_image.jpg : my title for jan image
feb: my_feb_image.jpg : my title for feb image

ie a 3-letter month name, a colon, a filename, another colon, and a title for the image.
If you are a windows user and are unfamiliar with plain-text files, you can download this default list file. As long as you rename your image files to jan_image.jpg, feb_image.jpg, etc, you won't have to edit the file at all.
The image filenames can either have full paths, or can be local names if you put them in the same directory as the templates. The title string is optional, and you do not need to have every month in the file if you want to redo selected pages.
A # as the first character denotes a comment line and will be ignored.
The images can be any size, and will be scaled to fit the resolution of the template, which means that you will get maximum quality with images at least 2400 pixels across.
Horizontal pictures fit the space best, while verticals will have more white space around them.
Avoid spaces in filenames, as they may upset the parser. Use underscores instead.

3) Move the script file (calendar_composite.js) to your Photoshop script directory. On the mac this is something like : /Applications/Adobe Photoshop CS/Presets/Scripts/calendar_composite.js
Windows will be something similar.

4) Now you are ready to open Photoshop, make sure that there are no other Photoshop documents open, and select the File->Scripts->calendar option that should have appeared. You will be prompted to browse for the image list file that you made earlier, and once you have selected that, Photoshop will run away and composite all your calendar pages, calling them jan_final.jpg, feb_final.jpg, etc.

The script formats for output on A4 paper, but you can change this in in the code. Alternatively you can simply choose "scale to fit page" when you print.
Here is a full-sized example : jan_final.jpg and an example scaled to fit a screen : aug_final.jpg

© Mark Harris, Uppsala, Sweden. http://xray.bmc.uu.se/markh
But feel free to develop and spread the code with acknowlegements.

(A Photoshop script to embed titles in images)

(Other photo pages)

(MRH homepage)