获取图像详细信息以添加到DOCX

时间:2011-09-01 15:14:34

标签: c# c#-4.0

我使用此处找到的WordprocessingDocument方法(Open XML)http://msdn.microsoft.com/en-us/library/bb497430.aspx将图像添加到DOCX文件。

我可以添加图片,但尺寸不正确。

MainDocumentPart mainPart = doc.MainDocumentPart;
ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Jpeg);
using (System.IO.FileStream stream = new System.IO.FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read))
      {
           imagePart.FeedData(stream);
      }


return AddImageToBody(doc, mainPart.GetIdOfPart(imagePart), fileName);

private static Drawing AddImageToBody(WordprocessingDocument wordDoc, string relationshipId, string filename)
    { 
       long imageWidthEMU = 1900000;
       long imageHeightEMU = 350000;

       double imageWidthInInches = imageWidthEMU / 914400.0;
       double imageHeightInInches = imageHeightEMU / 914400.0;

        new DW.Extent();

        //Define the reference of the image.
        var element =
             new Drawing(
                 new DW.Inline(
                     new DW.Extent() { Cx = imageWidthEMU, Cy = imageHeightEMU },

如您所见,您可以手动指定尺寸(长度+宽度)。我无法动态地获取它们。如何才能获得正确的图像大小以传递给此代码?

感谢。

1 个答案:

答案 0 :(得分:1)

你的问题在这里解决了: Inserting Image into DocX using OpenXML and setting the size

没有办法通过xml文件中的指令解决它。 OOXML仅提供<a:fill><a:tile>选项。