Hi, I have a word, some group object in files. I want to replace this group to image, this image is convert by this group. Is there any sample code? thanks.
@ZZZ21321 Sure, you can use ShapeRenderer class to render group shape to image. For example see the following code:
Document doc = new Document(@"C:\Temp\in.docx");
// Get the first groupshape in the document.
GroupShape gs = (GroupShape)doc.GetChild(NodeType.GroupShape, 0, true);
// Save group shape as an image.
gs.GetShapeRenderer().Save(@"C:\Temp\gs.png", new ImageSaveOptions(SaveFormat.Png));
Thanks. So how to replace group with this saved image?
@ZZZ21321 You can use code like this to achieve this:
Document doc = new Document("C:\\Temp\\in.docx");
// Get group shape.
GroupShape group = (GroupShape)doc.GetChild(NodeType.GroupShape, 0, true);
// Render the chart to image and save the result into a stream.
MemoryStream groupImageStream = new MemoryStream();
group.GetShapeRenderer().Save(groupImageStream, new ImageSaveOptions(SaveFormat.Png));
// Crete a shape with chart image and insert it after the chart shape.
Shape imageShape = new Shape(doc, ShapeType.Image);
imageShape.ImageData.ImageBytes = groupImageStream.ToArray();
imageShape.Width = group.Width;
imageShape.Height = group.Height;
// There might be other shape properties that you need to set, like wrapping or absolute position.
// ...........
group.ParentNode.InsertAfter(imageShape, group);
// Remove chart shape.
group.Remove();
doc.Save("C:\\Temp\\out.docx");