9.5.0 breaking change: DrawingML vs. Shape

I just discovered that when reading .docx files, nodes that were treated as Drawing.Shape are now treated as DrawingML.
We’re using Aspose to convert documents from Word, and without full support for getting at the image data via DrawingML, this seems like a serious breaking change.
Questions:
Am I missing something? Is there a way to get at and convert the image data with DrawingML?
Is there a discussion of this in the release notes that I missed?
It seems that 9.1.0 does not have this problem. Are there any breaking changes in 9.1.0 when compared to 8.1.0? We are currently using 8.1.0.
Thanks,
Steve

Hello
Thanks for your inquiry. In earlier version of Aspose.Words DrawingML Diagrams and Charts were lost upon processing documents. In 9.4 we provide limited support of these kinds of content. Please see the following link for more information:
https://reference.aspose.com/words/net/aspose.words.drawing/
The current version of Aspose.Words the DrawingML class does not yet provide public methods to interface with the object’s properties. We will provide more control over these objects in one of future versions of Aspose.Words. We will let you know once accessing data of DrawingML objects is supported.
There were a few breaking changes to the API in version 9.2. You can find full details of these changes in the migration article:
https://docs.aspose.com/words/net/aspose-words-for-net/
Best regards,

Thanks for the explanation. I want to make it clear, however, that I still think there is a breaking change. The attached document, when read with the 9.1.0 Aspose library, has its image (a bitmap image, not a diagram or chart) represented as a Drawing.Shape, but with the 9.5.0 library the image is represented as DrawingML, from which we can’t extract the image data for use by our converter.
However, maybe I’m missing something.
Your documentation at the above link says “Preserve DrawingML pictures when converting a DOCX document into other formats” is supported. Currently when using Shape, we get the image type with shape.ImageData.ImageType and we get the image data with shape.ImageData.ImageBytes. Are there similar functions for DrawingML?

Hi Steve,
Thanks for your inquiry.
Yes, this is a bit of a breaking change, but once DrawingML is fully available this will allow for greater support of content in OOXML documnets.
You are correct that right now there is no public properties to access the content of DrawingML nodes. We will provide these in a future version and are currently working to do this. We will inform you when this is ready.
For now I can only suggest to revert back to an older version of Aspose.Words which still loads these objects in as Shape nodes until this feature is available.
Thanks,

Is this issue resolved with 9.7 or 9.6?
Thanks,
Steve

Hi Steve,

Thanks for your request. This feature is still unavailable. We will let you know one this feature is available.
Best regards,

Thanks for your quick reply.
Because image support is broken for us, please consider that this is a high priority for us. We will remain at version 9.1 (avoiding the minor breaking changes of 9.2 as well) until image support is working again.
Regards,
Steve

Hello

Thanks for your request. I added your request to my monthly report, so priority of this issue will be increased.
As a temporary workaround you can try converting your document to DOC stream. In this case, all DrawingML objects will be converted to Shapes and you will be able to work with images.
Please try using the following code:

Document doc = new Document("youDoc.docx");
// Convert DOCX to DOC to get access to images.
MemoryStream docStream = new MemoryStream();
doc.Save(docStream, SaveFormat.Doc);
doc = new Document(docStream);
// Get all shapes in the document.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
// Loop through all shapes.
foreach(Shape shape in shapes)
{
    // Working with shape
}

Best regards,

Hi, I’m wondering if this is fixed in 9.8.0.
Thanks,
Steve

Hello,
Thank you for your request.
Unfortunately, this functionality is not yet implemented. We’ll keep you informed on any developments of this issue.

I see that you are now up to version 10.2.0. Is this fixed yet? If not, could you please give me an estimate as to when it will be fixed?
We’re paying for ongoing maintenance releases, but have not been able to update because of this problem.
Regards,
Steve

Hi Steve,
Thanks for your inquiry.
The latest version of Aspose.Words allows you to retrieve and change the image data of a DrawingML object. We apologise that you weren’t informed about this issue being fixed.
Please note this function only works for images and not for diagrams or charts.
Thanks,

The issues you have found earlier (filed as WORDSNET-3958) have been fixed in this .NET update and this Java update.

This message was posted using Notification2Forum from Downloads module by aspose.notifier.
(14)