Whilst I've dabbled a bit with scripting and understand the general principles, I'm yet to find a compelling reason to really jump in to the ID scripting world. Lots of you seem to be thoroughly converted, so tell me briefly what your big wins with scripting have been. Maybe I'm not working on the right sort of ID projects, but I'd love to be inspired to investigate scripting properly.
Please note, I'm not asking anyone to post their actual scripts, just a quick story about the kick-@ss solutions you've worked out.
These scripts are crucial for our entire workflow, and heavily intertwined with it, so I cannot tell any more on this -- besides, they would be useless to any other random user as well, because of their integration into our workflow.
If you have to ask then probably scripting is not for you. Efficiency sometimes means a double click on a script instead of going to the menu and changing two view settings. Sometimes it means creating documents from scratch, importing articles from a database and importing them, formatting. Updating automatically whenever articles change in database. Scripting in this case is so efficient that the customer would not have bought InDesign in the first place if he had to do everything by hand.
I work for a newspaper company.
We use scripting a variety of ways to gain efficiencies, from the very simple (snap the current container to the next page column guide, mapped to a key, which has the dual advantages of being immediate and precise) to tedious (multiple search/replace operations to fix straight quotes, strip multiple spaces, change double hyphens to dashes etc. on email or word docs pasted into stories).
Larry Wall, creator of perl, said a prime attribute of a scripter Is laziness. Most of our scripts are keyed to tasks that waste time, require multiple clicks and menu choices, or produce inconsistent results when performed manually.
Thanks Rick, that's a useful insight. I'm not so much motivated by laziness, but by seeing repetitive tasks carried out by my colleagues. Whilst, as you say, many scripts seem to execute minor tasks, I'm more interested in the sort of automation that could do something like: open template > import xml > map to styles > find/replace to tidy up syntax, etc. ie the sort of thing that -- with good planning -- could automate the creation of documents. I'm across these functions as separate tasks, but not familiar with tying them all together in scripts. I guess it's also a case of knowing which is the right job to automate. Thanks for taking the time to comment.
When being asked to relink an entire ≈ 1000 page catalogue (indd-docs are 100-200 pcs), with thousands of pictures, which have all been moved into one folder (originally 10 folders) and have all been converted into .tif, or .jpg, from being a bunch of different formats – is when you need a script.
Some people see that as a working opportunity not to be missed, relinking all those pics by hand. But can the company afford that, when all other dealings with the catalogue are equally time consuming? It might be a matter of meeting a deadline as well as being within budget and/or making good use of resources and talents.
Thanks for taking the time to write. I have a couple of comments, one general and one specific.
I am naturally of the disposition that the prospect of finding a quick way to automate a process is very appealing. The problem is that -- as our projects are often very different to each other -- I can spend twice as long working out the 'quick' way to do something, only to never have that situation crop up again. There is, however, one instance where we have an annual project which I have progressively shaved dozens of hours from by refining our workflow, but only because I know it's coming up and can plan for it.
In the instance you describe above, can't you just go links > relink to folder... ?
I work in magazine production and the first script I ever used (and still using) is Scott Zanelli's Page Exporter Utility.
From changing small things that co-workers do that annoy you all day, everyday (toggling measurement units, kerning amounts, keyboard shortcuts for blending modes), to replacing globally page numbers/datelines/slug data with JS/GREP for the next issue of the magazine.
I recently used Kasyan's resizing script to resize+save+relink 100 huge, different-sized images used on one InDesign page (2GB size) — I took a tea break, it finished in 4 mins without any intervention. I could do this tediously by hand if I was paid freelancing by the hour and had a flexible deadline, but I don't.
Kudos to Adobe and all the generous and talented people on this forum.
Come to think of it, using scripts for the things we've been talking about here is the equivalent of using paragraph styles (preferably nested) vs. manually setting the hundreds of display attributes available for a highly designed document.
"In the instance you describe above, can't you just go links > relink to folder... ?"
Yes, (well not if the images have a new extension), that would be enough. But I realise I remembered the case wrong! My suggestion was to move the images to just one folder – but there were duplicates, who would then erase each other.
Instead we chose to keep the folder structure, but these folders had migrated to a different server, so we still had that problem, and a script was necessary. I had to use 'Name Changer' for Mac to take care of the duplicate issues, and then run a script with a batch function.
About the other thing, developing scripts whith no other purpose than just one project. It's a balance you have to maintain: Will the time spent with the script save time so that deadlines are met, budgets etc. If it doesn't, it's a waste of time and resources unless you are also in the process of learning scripting, and there is a mutual aggreement with all parties that it is a priority for you to become more skilled with scripts.
I wrote several scripts ranging from small utility tasks needed during the layout work (about 400 of those) up to a complete automation of the entire layout process.
Two samples of the full automation scripts I wrote (for a customers):
1. Processing and layout of a database report into a 4 sections index book sorted by name, location, date, and topic, Book'ed the , planted adds, generated a TOC, and generated the PDF output. Before the script: ~2.5 months, After: 12 minutes per run.
2. Layout of a complete fonts catalog including sorting according to categories, sample text fitting, and generation of QR barcodes for each font that points to a PDF sample page of the fonts package. Before the script: ~2 months, After: 14 minutes per run.
The only predefined items in both projects were the InDesign layout templates.
Another sample for an overall script solution is my InTranslation scripts package that enables exporting all the text strings from a layout document, sending it to your translator, then importing the translated sting back to your layout.
As for small "utility" scripts:
1. A series of table handling and manipulating scripts that perform routine table processing tasks, like:
- Table Cleaner that cleans empty rows and columns from placed tables.
- HV Cell Merger that enables horizontal or vertical merging of table cells in a selected region.
- Columns Gaper that add width specified margin columns between the columns in the selected region.
- Columns Flipper that flips the order of the selected columns.
- Apply Table Style 2 All Tables that apply's the selected table style to all the tables in the document.
- Add Remove Leading Char written specially for financial reports to simplify the process of adding or removing a leading space or tab in front of the positive values in the table + adding a thousands comma where needed.
2. The Story Splitter script that enables separating all story frames or breaking the story in two between two specific frames while keeping the frames content.
3. Indexing helper scripts:
- Index by List to log index entries from a text list.
- Index by Char Style to log index entries according to a specified character style dappled to them.
4. Book Files 2 PDF that automatically generates each book document to a separate PDF.
5. Footnote Range Styler that allows setting different paragraph styles the a specific range of footnotes.
6. Relink 2 Folder a CS3 era auto-relinking script that still works grate.
7. Polaroid Maker that adds a Polaroid like frame to selected images.
8. Pointalligner that enables point aligning in InDesign (still in beta).
9. FC Queries Utility that enable you to export and import saved Find/Change Queries (sold for 3.99 USD).
10. Foreground PDF Export that adds a legacy foreground PDF export command to file menu of ID CS5/5.5 as a workaround to the issues of the background process.
Most of these utility scripts were available for download from a .Mac hosted site I had which unfortunately is no longer available.