Welcome to OpenXML Developer Sign in | Join | Help

Strange problem with DrawingsPart.AddNewPart<ImagePart>()

Last post 12-08-2008, 1:27 PM by gibble. 2 replies.
Sort Posts: Previous Next
  •  09-19-2008, 2:07 AM 3714

    Strange problem with DrawingsPart.AddNewPart<ImagePart>()

    I have a code that add an image to a spread, it works fine if I give a static string as relationship ID to it.

     var drawingsPart = worksheetPart.AddNewPart();
     GenerateDrawingsPart().Save(drawingsPart);
     //get unique relationship id
     string l_rid = worksheetPart.GetIdOfPart(drawingsPart);
     worksheetPart.Worksheet.Append(new Drawing() { Id = l_rid });
     worksheetPart.Worksheet.Save();

     var imagePart = drawingsPart.AddNewPart("image/png", "rId1");
     GenerateImagePart(imagePart,diagram);

    it works just fine. As you can see I am using dynamic generated part id as the relastionship id for drawing object.

    I am trying to do the same thing for image object. modified code as follow:

                var drawingsPart = worksheetPart.AddNewPart<DrawingsPart>();
                GenerateDrawingsPart().Save(drawingsPart);
                //get unique relationship id
                string l_rid = worksheetPart.GetIdOfPart(drawingsPart);
                worksheetPart.Worksheet.Append(new Drawing() { Id = l_rid });
                worksheetPart.Worksheet.Save();

                var imagePart = drawingsPart.AddNewPart<ImagePart>();
                //get unique relationship id
                string l_ipRid = drawingsPart.GetIdOfPart(imagePart);
                GenerateImagePart(imagePart, diagram);

    but this time the compiler gives me an error.

    Error 1 The type 'DocumentFormat.OpenXml.Packaging.ImagePart' cannot be used as type parameter 'T' in the generic type or method 'DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.AddNewPart<T>()'. There is no implicit reference conversion from 'DocumentFormat.OpenXml.Packaging.ImagePart' to 'DocumentFormat.OpenXml.Packaging.IFixedContentTypePart'. 

     

    what is going on?

  •  09-19-2008, 3:18 AM 3715 in reply to 3714

    Re: Strange problem with DrawingsPart.AddNewPart<ImagePart>()

    I have find myself a solution.

    use DrawingPart.AddImagePart() instead.

    although the inconsistence of adding parts makes me feel uncomfortable.

    Cheers.

  •  12-08-2008, 1:27 PM 3934 in reply to 3715

    Re: Strange problem with DrawingsPart.AddNewPart<ImagePart>()

    How do you then show the image you added in your worksheet?
View as RSS news feed in XML