Layers |
Adobe InDesign Calendar Wizard |
When I started to develop and use this script, I found it a pain to create the calendar, type in one cell, tab to the next and promptly delete the date by typing over it. My solution was to generate the calendar as multiple super-imposed tables putting each on their own layer. This turned out to be a rather useful technique and I applied it for several more features.
The calendar currently supports up to 6 layers positioned in the following order:
By default, only the text layer is selected. If the calendarDates is not selected, the script will place the date table on the current layer (usually Layer 1) and stack the layers such that the current layer is at the same place as the calendarDates layer above.
In general the multi-layer scheme works really well; however, there is a complication. If you want to resize any of the cells in the calendar or the calendar itself, all three associated tables need identical modifications. This is rather painful to do manually. The solution to theseproblems are with two additional scripts included with the calendarWizard download: fitCalendarToFrame.js and realignCalendarTables.js.
fitCalendarToFrame is another javascript which is used to resize all layers of the calendar with even cell spacing into the selected text frame. If the work week is included, it will be given a 0.25" cell width.
caution: The adobe script engine fails to work on cells that are not visible. This can be quite a pain when tring to reduce the size of the calendar. Sometimes it works to run the script several times because as cells in the top are reduced, cells in the bottom become visible.
When executed with a calendar table selected, it becomes the master. All of the layers of the calendar will be adjusted to the selected table. If no frame is selected, a dialog box is brought up and the user needs to specifiy which calendar and frame will be the master. Under the hood, each calendar table has a label such as calendarDates1, calendarHolidays1, and calendarText1. The number is the id of the calendar. So a page with four calendars will have calendarDates1, calendarDates2, , calendarDates3, and calendarDates4. To figure out which calendar has which label, select it and open up the "Scripts Labels" pallete. As an options, all may be selected in which case every calendar in the document will be adjusted. See Tutorial 11: Multi-Styled 12 Month Calendar
realignCalendarTablse.js is another javascript which is used to align all of the calendar layers to a particular one. For example, if un-even column spacing is desired one layer can be tweeked into place and this script would push the other layers into an exact super-position of the tweeked table. The rules for selecting the table are the same as for the fitCalendarToFrame.js script.
Email the Author - Scott Selberg |