Our ~1500-page documentation set contains numerous screen shots and related graphics (schematics, flow diagrams, etc). Sometimes the user interface changes and we have to update all the affected graphics. The affected graphics are not necesarily all in one book; they can be spread across several. In short, they could be anywhere, so we rely on writers' knowledge of the doc set and sometimes just paging through the whole thing looking for graphics that are no longer correct. The first is fragile and the second is tedious (and also can be fragile).

Within the XML doc source itself I can (and do) embed internal tags that I can later search for. Think of that as meta-data for the docs. I'm looking for a way to associate meta-data with images, so I can find all the images that show such-and-such feature or such-and-such widget or whatever. I could set up an external index file or database, but that means the meta-data is far from the images and I worry about it staying up to data (will every writer always remember to update the database when he creates or edits an image and its meta-data changes?). Is there anything clever I can do to get the meta-data closer to the data?

Image formats are PNG for screen shots, GIF for line art. Is there any tool that would let us embed, and query, meta-data right into files in those formats?

Our existing relevant tools are: Perforce for source control, DocBook XML for the doc source, Ant for build targets. On the graphics side, we use PaintShop Pro and/or SnagIt for taking/editing screen shots, and mostly Visual Thought for line-art (though we have access to InkScape and can learn it if that would help). Our desktops are Windows (XP now, 7 later this year).

Edit: The screen shots also have text implications -- we usually don't just have a screen shot, but rather a screen shot and text that talks about the options or what you can do with that tool. The screen shots are integral to the documentation, and if a screen shot has to be updated we also have to look at the places where that image is used. Finding those points in the text is easy (I can just grep the source for the file name of each image when I update it), but finding the screen shots that have to change in the first place (because the UI changed) is much harder. This question is about managing that process so we can keep all the documentation up to date.

  • 2
    I'm going to disagree with @Steven that this is a fit at Graphic Design. It's a meta-data issue, and it meets our criteria for software use questions.
    – justkt
    Commented Aug 31, 2011 at 16:02
  • 2
    That looks like it's more about design than about implementation (they even say to not ask how-to questions). I'm not fussy; I want to ask it where it's more appropriate, wherever that is. Commented Aug 31, 2011 at 19:12
  • 2
    Related on SuperUser (where you might get more experts than here on Writers), What software can I use to read PNG metadata?
    – justkt
    Commented Aug 31, 2011 at 19:36
  • 1
    I don't think this has anything to do with Writing or Writers.SE Commented Sep 1, 2011 at 0:14
  • 5
    Since technical writing is on topic, and this is a question on maintenance in a technical writing project, I don't see any reason this would be off-topic.
    – Standback
    Commented Sep 6, 2011 at 13:03

4 Answers 4


Since this is deemed on topic, I'll give my recommendation as a proper answer.

Rather than recommend other tools, judging by your setup (Paintshop Pro, Windows XP or Windows 7), the easiest method is to use these existing tools to do what you need:

  1. Use Paintshop Pro to add meta data to your images. You can do this by going to Image > Image Information. I added metadata to the "Description" field for the image. This way you can add words (maybe even develop your own system of tags) that you will use to search for. You could also add other data like who took the screen shot, the date it was last modified etc. If you plan the metadata, you can build a really good system for organising your images.

  2. Once that's done, you can then use Window XP's built in Search to find the file (same should work on Windows 7, too). Simply specify the directory you need, choose "Pictures and Photos" only, and then select "for a phrase or word in a file". Type in the phrase/tag you're looking for, click search, and it should find the image you're looking for.

  • 4
    Thanks! This worked for me and doesn't require getting approval for any new tools. Commented Sep 14, 2011 at 14:50

For the book I am currently writing, which is not written in docbook directly but is written in a markup that will be translated to DocBook for publishing, I use an XML file to capture metadata for each illustration.

<?xml version="1.0" encoding="UTF-8"?>
        <p>A diagram showing multiple pieces being combined in different ways to produce different outputs.</p>

Because the book will be published to both paper and ebook, we need different file formats for each graphic. Here the source graphic is assemble.svg and the same file is used for print (fo means xsl-fo). But for epub, which does not support SVG, we use assemble.png. The XML also provide an alt for the graphic and lets you include sizing information as well.

When I include a graphic in the book, the include instruction actually points to the XML file rather than the graphic file directly. The processing code then reads the XML file and generates conditional DocBook markup for use with each version of the book build.

This approach gets around any difficulties with including metadata in the graphic files themselves and allows you a level of abstraction that will let you use different file formats for different media.

Something similar should be workable for your builds. It will simply require either some preprocessing of your source files or some additional rules for processing graphics.

The downside of pointing to the XML file rather than the graphic is that the graphic will not show in a graphical XML editor. But there is a way round this. Rather than pointing to the XML file in the source, point to a graphic file as normal, but rewrite the processing code for the include instruction to strip off the graphic file extension and read an XML file of the same name in the same directory.

  • Oh wow, that's clever! Commented Feb 23, 2018 at 15:51

I used to work on a project where we wrote a graphical UI to subversion for a group of artists. Though I can't link that particular program. Subversion essentially should be able to do all that you need. Example article: http://www.wensh.net/archive.php/topic/1556.html


Madcap Flare should help.

  • 1
    Could you say a little more? From that page it appears that Madcap Flare is a whole publishing system. We already have a publishing system and aren't looking to replace it. Is there some capability that Flare has that would solve our problem without incurring the costs of re-implementing everything we already have? Commented Sep 6, 2011 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.