Alternative Text

With Aspose.Slides, you can get/set the alternative text for shapes. Is it possible to do the same thing in Aspose.Words? Also, what type of node is a Drawing Canvas? Is it a shape or inline shape or something else?

Geting/setting alternative text for shapes is not supported in our current API.

Drawing canvas is actually a field { SHAPE \* MERGEFORMAT }, which contains all other shapes that are drawn on it. You can see it by pressing ALT-F9 in MS Word or using our DocumentExplorer source code demo, which can be located in C:\Program Files\Aspose\Aspose.Words\Demos\DocumentExplorer after Aspose.Words installation.

Can you suggest a way to "tag" a picture? I don't need to set the tag in code, but I just need to retrieve it. For example, if a document has 4 pictures, I need to find a specific picture by some sort of tag/name/id that a client can set when creating the document.

I have logged 'setting alternative text for shapes' to our defect base as a feature request (issue #1081). We will try to add this ability in one of our future versions.

Meanwhile, you can use bookmarks to 'tag' the pictures. Here is a samle code on how to get a hold of a shape marked with a bookmark:

// set document path

string filename = Application.StartupPath + "\\doc1.doc";

// load document

Document doc = new Document(filename);

// create DocumentBuilder

DocumentBuilder builder = new DocumentBuilder(doc);

// use builder to move to bookmark with predefined name, e.g. "pic1"

builder.MoveToBookmark("pic1");

// Get all shapes in the bookmark area

NodeCollection shapes = builder.CurrentParagraph.GetChildNodes(NodeType.Shape, true);

// get all inline shapes in a bookmark area

NodeCollection inlineShapes = builder.CurrentParagraph.GetChildNodes(NodeType.InlineShape, true);

// manipulate shapes, using Image property or other properties of Shape class.

// ...

We have added ShapeBase.AlternativeText property in the recently published Aspose.Words 4.0 which lets you to set alternative text for shapes.