We are authoring content in DITA using structured Framemaker 12 and I get the following error when I try to place a text frame on an image and try to save the file. Could someone help me with this?
"Multiple objects are allowed within a single frame"
ramav, I don't use DITA, but my guess is that the message should actually read:
"Multiple objects are not allowed within a single frame"
The concept of multiple objects within a single frame is generally incompatible with any standard XML model. In XML markup, it is reasonably straightforward to reference a single object, with which FrameMaker can build an anchored frame, etc. Anything more complex, especially overlaid text frames, would require a significant and customized effort to handle. So, if you want text in your images, add the text directly to the image file, then import just the file.
Thank you Russ for your quick reply...
You are correct about the message: It's, "Multiple objects are not allowed within a single frame"
Adding the text to the image would be our last option because the text frames will be populated using variables and the values of the variables would change from product to product...
This feature is supported in unstructured Framemaker...is there any workaround or something that we can have to replicate the same behavior in structured Framemaker?
There is no simple workaround, if you are using XML. If you are just using structured FrameMaker, this is no problem, but the DITA architecture assumes XML. So with DITA, you have no easy options.
I would encourage you to consider the bigger picture here... it is not so much a FrameMaker problem, rather it is a misunderstanding of the capabilities of DITA and XML. There are many FrameMaker gizmos that do not transfer easily to the XML environment, such as variables, markers, text insets, custom drawing objects, and conditional text. If you want to move to a different source format other than binary *.fm files, you need to think about the limitations of that format. If you were authoring DITA in any other tool, you would have the same problem except you would not notice it, because that tool would not even present the option to overlay text frames on a graphic.
So, if you want to use DITA XML or any other XML data model, you may need to do some more feasibility studies. Many solutions may exist for your issue, but because you want fancy, customized behavior, you'll need to take the extra steps to get there. I hope you haven't committed significant resources to the DITA XML idea without these important, preliminary steps.
Have you thought about using numbered callouts in your image? That is, create the graphic (EPS or whatever), put only the EPS in the frame. The EPS has numbered callouts. Below the frame, in text or a table, identify the numbered callouts using the variables you need.
Maybe the new SVG domain in the just released DITA 1.3 can offer a solution here in the future.
I can see some namespaced dita keyrefs in inline svg graphics. Something like this:
<title>DITA keyref in SVG</title>
<svg:text>Part number: <ph keyref="ThisPartNumber"/></svg:text>
However, I'm not sure if this would be even "legal". Or if any engine available today could even resolve this keyref in output. Remains to be tested.