我目前正在使用 Visual Studio 2010 中的 .NET 应用程序。我想使用 C# 创建一个 MS Word 2010 文件。我已经创建了一个新文档并插入了一些段落。现在我想在文档中插入一些形状。因此,我在 Microsoft.Office.Interop.Word 命名空间中使用 Word.Document.Shapes.AddLine() 方法。我想在某些段落之后添加形状。当这些段落位于文档的第一页时,一切正常。但如果段落在另一页上,则形状也将插入第一页。我使用以下 C# 代码:
//Add paragraph
Word.Paragraph oPara2;
object oRng = NewDocument.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara2= NewDocument.Content.Paragraphs.Add(ref oRng);
oPara2.Range.Text = "Text";
oPara2.Range.InsertParagraphAfter();
//Vertical position of the shape
float position = (float) (oPara2.Range.get_Information (Word.WdInformation.wdVerticalPositionRelativeToPage) - 16.5 );
//Add Line
Word.Shape line2 = NewDocument.Shapes.AddLine(30, position, 800, position);
/*
*
*Some more paragraphs
*
**/
//Next Paragraph with shape
Word.Paragraph oPara13;
oRng = NewDocument.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara13 = NewDocument.Content.Paragraphs.Add(ref oRng);
oPara13.Range.Text = "Text";
oPara13.Range.InsertParagraphAfter();
//Vertical position of the shape
position = (float) (oPara13.Range.get_Information (Word.WdInformation.wdVerticalPositionRelativeToPage) - 16.5 );
//Add Line
Word.Shape line3 = NewDocument.Shapes.AddLine(30, position, 800, position);
oPara13 段位于文件的第二页。计算的位置值是正确的,但形状将插入到该位置的第一页。现在我想问一下如何使形状插入到相应段落所在的正确页面上。我已经尝试设置 AddLine 方法的锚参数,但结果不好。