如何使用C#在word 2007文档中的特定坐标处插入图片/文本标签?

Ham*_*jan 3 c# ms-word css-position .net-4.0 office-interop

我可以这样做,在默认位置插入图片和文字:

        private static object objTrue = true;
        private static object objFalse = false;
        private static object objMissing = Missing.Value;
        private static object objEndOfDoc = @"\endofdoc"; // \endofdoc is a predefined bookmark.

        ...

        this.WordApp = new Word.Application();
        this.WordDoc = new Word.Document();
        this.WordApp.Visible = true;
        this.WordDoc = this.WordApp.Documents.Add(ref objMissing, ref objMissing, ref objMissing, ref objMissing);

        this.WordDoc.Content.InlineShapes.AddPicture(
        FileName: @"C:\MyLogo.png",
        LinkToFile: ref objMissing,
        SaveWithDocument: ref objTrue,
        Range: objMissing);

        // Insert a paragraph at the beginning of the document.
        var paragraph1 = this.WordDoc.Content.Paragraphs.Add(ref objMissing);
        paragraph1.Range.Text = "Heading 1";
        paragraph1.Range.Font.Bold = 1;
        paragraph1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
        paragraph1.Range.InsertParagraphAfter();
Run Code Online (Sandbox Code Playgroud)

如何将它移动到我想要的任何位置?当我创建PowerPoint(手动)时,我可以在任何地方放置东西.当我手动插入一个形状时,我可以将它放在任何地方.使用c#以编程方式插入图片和文本标签时,如何获得类似的结果?我没有成功使用Google搜索来解决这个问题.

Chr*_*ens 5

Range类字来确定,几乎一切都一个文件内.如果用有效对象替换了Range参数,它会将图片插入word文档中的那个位置,并且段落也是如此.this.WordDoc.Content.InlineShapes.AddPictureRange

根据MSDN对InlineShapes的AddPicture方法:

范围:可选对象.图片放置在文本中的位置.如果范围未折叠,则图片将替换范围; 否则,插入图片.如果省略此参数,则会自动放置图片.

另一种方法是使用Shapes文档的成员而不是InlineShapes.在AddPicture对方法Shapes类允许您指定的坐标:

this.WordDoc.Content.Shapes.AddPicture(
    [In] string FileName, 
    [In, Optional] ref object LinkToFile, 
    [In, Optional] ref object SaveWithDocument, 
    [In, Optional] ref object Left, 
    [In, Optional] ref object Top, 
    [In, Optional] ref object Width, 
    [In, Optional] ref object Height, 
    [In, Optional] ref object Anchor
);
Run Code Online (Sandbox Code Playgroud)

InlineShapes.AddPicture

Shapes.AddPicture