InlineStoryParentParagraph Property |
Namespace: Aspose.Words
// Create a new document and insert a blank footnote Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); Footnote footnote = builder.InsertFootnote(FootnoteType.Footnote, null); // Table nodes have an "EnsureMinimum()" method that makes sure the table has at least one cell Table table = new Table(doc); table.EnsureMinimum(); // We can place a table inside a footnote, which will make it appear at the footer of the referencing page Assert.That(footnote.Tables, Is.Empty); footnote.AppendChild(table); Assert.AreEqual(1, footnote.Tables.Count); Assert.AreEqual(NodeType.Table, footnote.LastChild.NodeType); // An InlineStory has an "EnsureMinimum()" method as well, but in this case it makes sure the last child of the node is a paragraph, // so we can click and write text easily in Microsoft Word footnote.EnsureMinimum(); Assert.AreEqual(NodeType.Paragraph, footnote.LastChild.NodeType); // Edit the appearance of the anchor, which is the small superscript number in the main text that points to the footnote footnote.Font.Name = "Arial"; footnote.Font.Color = Color.Green; // All inline story nodes have their own respective story types Assert.AreEqual(StoryType.Footnotes, footnote.StoryType); // A comment is another type of inline story Comment comment = (Comment)builder.CurrentParagraph.AppendChild(new Comment(doc, "John Doe", "J. D.", DateTime.Now)); // The parent paragraph of an inline story node will be the one from the main document body Assert.AreEqual(doc.FirstSection.Body.FirstParagraph, comment.ParentParagraph); // However, the last paragraph is the one from the comment text contents, which will be outside the main document body in a speech bubble // A comment won't have any child nodes by default, so we can apply the EnsureMinimum() method to place a paragraph here as well Assert.Null(comment.LastParagraph); comment.EnsureMinimum(); Assert.AreEqual(NodeType.Paragraph, comment.LastChild.NodeType); // Once we have a paragraph, we can move the builder do it and write our comment builder.MoveTo(comment.LastParagraph); builder.Write("My comment"); Assert.AreEqual(StoryType.Comments, comment.StoryType); doc.Save(ArtifactsDir + "InlineStory.InsertInlineStoryNodes.docx");