形状修正
在本分步指南中,我们将引导您了解如何使用 Aspose.Words for .NET 对 Word 文档中的形状进行修改。我们将为您提供完整的源代码,并向您展示如何格式化 Markdown 输出。
第 1 步:创建文档并添加形状
第一步是创建一个新文档并添加形状。
Document doc = new Document();
Assert.False(doc.TrackRevisions);
Shape shape = new Shape(doc, ShapeType.Cube);
shape. WrapType = WrapType. Inline;
shape. Width = 100.0;
shape. Height = 100.0;
doc.FirstSection.Body.FirstParagraph.AppendChild(shape);
第 2 步:跟踪修订并添加另一个形状
我们将打开修订跟踪并添加另一个形状。
doc.StartTrackRevisions("John Doe");
shape = new Shape(doc, ShapeType.Sun);
shape. WrapType = WrapType. Inline;
shape. Width = 100.0;
shape. Height = 100.0;
doc.FirstSection.Body.FirstParagraph.AppendChild(shape);
第 3 步:获取形状集合并检查修订情况
我们将从文档中获取形状集合并检查与每个形状相关的修订。
List<Shape> shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
Assert.AreEqual(ShapeType.Cube, shapes[0].ShapeType);
Assert.True(shapes[0].IsDeleteRevision);
Assert.AreEqual(ShapeType.Sun, shapes[1].ShapeType);
Assert.True(shapes[1].IsInsertRevision);
第 4 步:检查形状移动修订
我们将加载包含形状位移修订的现有文档并检查相关修订。
doc = new Document(MyDir + "Revision shape.docx");
shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
Assert. False(shapes[0].IsMoveFromRevision);
Assert.True(shapes[0].IsMoveToRevision);
Assert.True(shapes[1].IsMoveFromRevision);
Assert. False(shapes[1].IsMoveToRevision);
使用 Aspose.Words for .NET 进行形状修订的示例源代码
以下是使用 Aspose.Words for .NET 修改文档中的形状的完整源代码:
Document doc = new Document();
//插入内联形状而不跟踪修订。
Assert.False(doc.TrackRevisions);
Shape shape = new Shape(doc, ShapeType.Cube);
shape.WrapType = WrapType.Inline;
shape.Width = 100.0;
shape.Height = 100.0;
doc.FirstSection.Body.FirstParagraph.AppendChild(shape);
//开始跟踪修订,然后插入另一个形状。
doc.StartTrackRevisions("John Doe");
shape = new Shape(doc, ShapeType.Sun);
shape.WrapType = WrapType.Inline;
shape.Width = 100.0;
shape.Height = 100.0;
doc.FirstSection.Body.FirstParagraph.AppendChild(shape);
//获取文档的形状集合,其中仅包含我们添加的两个形状。
List<Shape> shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
//删除第一个形状。
shapes[0].Remove();
//因为我们在跟踪更改时删除了该形状,所以该形状算作删除修订。
Assert.AreEqual(ShapeType.Cube, shapes[0].ShapeType);
Assert.True(shapes[0].IsDeleteRevision);
//我们在跟踪更改时插入了另一个形状,因此该形状将被视为插入修订。
Assert.AreEqual(ShapeType.Sun, shapes[1].ShapeType);
Assert.True(shapes[1].IsInsertRevision);
//该文档有一个已移动的形状,但形状移动修订将有该形状的两个实例。
//一个是其到达目的地的形状,另一个是其原始位置的形状。
doc = new Document(MyDir + "Revision shape.docx");
shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
//这是向修正的移动,也是到达目的地的形状。
Assert.False(shapes[0].IsMoveFromRevision);
Assert.True(shapes[0].IsMoveToRevision);
//这是修订后的移动,即其原始位置的形状。
Assert.True(shapes[1].IsMoveFromRevision);
Assert.False(shapes[1].IsMoveToRevision);
结论
在本教程中,我们学习了如何使用 Aspose.Words for .NET 对 Word 文档中的形状进行修改。通过遵循创建文档、启用修订跟踪、检查与每个形状关联的修订以及检查移动形状的修订的步骤,我们能够成功管理修订。 Aspose.Words for .NET 提供了强大的 API,用于文字处理,包括 Word 文档中的评论和表单。
常见问题解答
问:如何在 Aspose.Words for .NET 中创建新文档并添加形状?
答:要在 Aspose.Words for .NET 中创建新文档并添加形状,您可以使用以下代码。这里我们向文档的第一部分添加两个形状,一个立方体和一个太阳:
Document doc = new Document();
Assert.False(doc.TrackRevisions);
Shape shape = new Shape(doc, ShapeType.Cube);
shape. WrapType = WrapType. Inline;
shape. Width = 100.0;
shape. Height = 100.0;
doc.FirstSection.Body.FirstParagraph.AppendChild(shape);
问:如何在 Aspose.Words for .NET 中启用修订跟踪?
答:要在 Aspose.Words for .NET 中启用修订跟踪,您可以使用StartTrackRevisions
的方法Document
目的。此方法将修订作者的姓名作为参数:
doc.StartTrackRevisions("John Doe");
问:如何检查与 Aspose.Words for .NET 文档中每个形状相关的修订?
答:要检查与 Aspose.Words for .NET 文档中每个形状关联的修订,您可以使用以下命令获取文档的形状集合:GetChildNodes
方法与NodeType.Shape
节点类型。然后您可以访问每个形状的IsDeleteRevision
, IsInsertRevision
, IsMoveFromRevision
, 和IsMoveToRevision
属性来确定与形状关联的修订类型:
List<Shape> shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
Assert.AreEqual(ShapeType.Cube, shapes[0].ShapeType);
Assert.True(shapes[0].IsDeleteRevision);
Assert.AreEqual(ShapeType.Sun, shapes[1].ShapeType);
Assert.True(shapes[1].IsInsertRevision);
问:如何检查 Aspose.Words for .NET 文档中形状的位移修订?
答:要检查 Aspose.Words for .NET 文档中的形状位移修订,您可以加载包含形状位移修订的现有文档。然后您可以访问每个形状的IsMoveFromRevision
和IsMoveToRevision
属性来确定它是否正在移动,如果是,则从何处移动到何处:
doc = new Document(MyDir + "Revision shape.docx");
shapes = doc.GetChildNodes(NodeType.Shape, true).Cast<Shape>().ToList();
Assert.AreEqual(2, shapes.Count);
Assert. False(shapes[0].IsMoveFromRevision);
Assert.True(shapes[0].IsMoveToRevision);
Assert.True(shapes[1].IsMoveFromRevision);
Assert. False(shapes[1].IsMoveToRevision);