最近是使用C#操作word,碰到问题如下:
需求给word中写入文本和插入一个N张图片。 要求所有的图片都旋转270度(图片默认1440*810,为了方便阅读)。
由于C#操作word,头一次用。找了一段参考代码:// 插入图片
wordDoc.InlineShapes.AddPicture(filename, ref linkToFile, ref saveWithDocument, ref range);wordDoc.InlineShapes[1].ConvertToShape().Rotation = 270;  // 旋转270图片可以旋转,但旋转后图片位置发生了变化。后续插入的图片位置都变化,不在我原本插入的位置上了,图片的位置很难定位。
感觉是原本插入图片是嵌入型版式的,为什么位置总是发生变化呢。
恳请各位指教或提供更好的方法来处理图片的旋转。

解决方案 »

  1.   

    Word可視化控件http://ufo-crackerx.blog.163.com/blog/static/11307877820111017113958413/
      

  2.   

    这样操作也不行
     wordDoc.InlineShapes[1].Select();
    MSWord.Shape shape=wordDoc.InlineShapes[1].ConvertToShape();  // 转换为shape后位置就发生变化了
    shape.Rotation = 270;   //旋转270
      

  3.   

    自己觉得问题发生在: wordDoc.InlineShapes.AddPicture(......)插入图片后,word中默认图片为 嵌入型,而为了旋转图片,我转化为ConvertToShape()后,图片为word中就成为了 浮于文字上方,然后位置就变化了。
      

  4.   

    先给的位置 
    object range = wordDoc.Paragraphs.Last.Range;
    wordDoc.InlineShapes.AddPicture(filename, ref linkToFile, ref saveWithDocument, ref range);
      

  5.   

    问题搞定了,就一个属性可以搞定了
    var picShape = wordDoc.Application.ActiveWindow.Selection.InlineShapes.AddPicture(filename, ref linkToFile, ref saveWithDocument, ref range);
                    picShape.Select();
                    MSWord.Shape shape = picShape.ConvertToShape();
                    shape.Rotation = 270;
                    shape.WrapFormat.Type = WdWrapType.wdWrapInline;多谢楼上2位的捧场。