Last week, I posted a request on the Framers and FrameScript mailing lists, requesting your “favorite” FrameMaker bottlenecks. By bottlenecks, I mean the tedious, error-prone FrameMaker tasks that you have to perform. Or, it could mean a missing feature that you wish FrameMaker had.
I received a hand full of thoughtful responses, but one request I think would be the most useful would be a way to manage FrameMaker images. Here is an excerpt from the email I received:
My bottleneck is graphics — naming graphics consistently, and then finding and updating graphics in a document/book and getting rid of old graphics no longer used. For example, for a current application to which I am writing, I am having to document a Wizard that does function “X”. I am now on my third iteration of this wizard and all of the pages in the wizard have changed again. I need to recapture 10 screenshots and replace them in my current document. I know that I can save the new captures with the same name as the old captures and in the same location because I import by reference but, that’s not really handy for me because the previous captures are named RunWizard_Page1, RunWizard_Page2, etc. and >>NOW<< the Wizard is going to be named the Project Wizard and so I would like to take new captures name them ProjectWizard_Page1, etc. and somehow get these to replace my old captures rather than having to reimport, save them with the new name and/or delete the old named captures. Am I asking for the moon?
It occurred to me that this task might be best handled outside of FrameMaker and in an Excel spreadsheet. Here are the advantages I see:
You can quickly extract and manage a large amount of image data by going from FrameMaker to Excel via FrameScript.
You can use Excel’s tools to quickly analyze the image data by sorting, rearranging columns, etc.
You can use Excel’s find/replace function to quickly change the image data you want. The image file and path could be listed in separate columns in the spreadsheet, making it easier (and safer) to do find/replace on just folders or file names.
You can extract image data from multiple books and combine them into a single spreadsheet and update hundreds of common images at once.
This would basically be done with two FrameScript scripts: the first would extract the data into a .CSV file, which can be opened in Excel. The second script would update the image paths in the FrameMaker documents from the content of the Excel file. Both scripts would run in seconds, even with large amounts of image data.
What do you think? If this solution appeals to you, or you have any suggestions for making it better, I would love to hear from you.
5 thoughts on “Managing FrameMaker Images”
I need a script that will find a graphic by its name.
Korea sends me files that are different (see following) and I need to find them so I can name them to something useful and repl;ace them. I keep a master folder of images and have no idea which documents use them. These cuase font errors and all sorts of trouble.
Note: the black bar is a different character
Your solution might help me – I have a ‘pics’ folder that is a common source of images for a whole host of documents I have developed for a client over the past 10 years. It is huge, and many files are obsolete and not referenced any more. It would be great to have a way of pruning this folder (and its subfolders) so I’m not backing up masses of irrelevant files.
If I buy one of your scripts, do I also need to buy FrameScript?
Thanks for the comment. Yes, this solution requires FrameScript.
I need to know which documents reference a particular image. If I change or rename an image, I need to know which documents are affected. It would be great if you could right-click on an image and see a list of documents that contain references to that one image. Is there a solution for this?
This set of scripts would give you a “low-tech” way of doing this. First, you would run the script that compiles all of the image data to the spreadsheet. You can open the spreadsheet in Excel, sort it by the image names, and leave it open for reference. Then, you would go to your image in FrameMaker and right-click on it to get its name. You can then switch to Excel and find the image name in the spreadsheet. Since the spreadsheet is sorted by image name, you will see all of its occurrences listed together in the spreadsheet. The cost for these scripts is $95 and they require FrameScript in order to run.
Of course, FrameScript could be used to implement your “right-click” scenario. A script could be written that would do the spreadsheet lookup for you, and display a list of documents using the selected image. If you are interested in this, please contact me and I will let you know what is possible. Thank you very much for the comment.