-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathShapesActions.vb
More file actions
155 lines (135 loc) · 9.19 KB
/
ShapesActions.vb
File metadata and controls
155 lines (135 loc) · 9.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit
Namespace RichEditDocumentServerAPIExample.CodeExamples
Friend Class ShapesActions
Public Shared AddFloatingPictureAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.AddFloatingPicture
Public Shared FloatingPictureOffsetAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.FloatingPictureOffset
Public Shared ChangeZorderAndWrappingAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.ChangeZorderAndWrapping
Public Shared AddTextBoxAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.AddTextBox
Public Shared InsertRichTextInTextBoxAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.InsertRichTextInTextBox
Public Shared RotateAndResizeAction As System.Action(Of DevExpress.XtraRichEdit.RichEditDocumentServer) = AddressOf RichEditDocumentServerAPIExample.CodeExamples.ShapesActions.RotateAndResize
Private Shared Sub AddFloatingPicture(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#AddFloatingPicture"
' Access a document.
Dim document As DevExpress.XtraRichEdit.API.Native.Document = wordProcessor.Document
' Append text to the document.
document.AppendText("Line One" & Global.Microsoft.VisualBasic.Constants.vbLf & "Line Two" & Global.Microsoft.VisualBasic.Constants.vbLf & "Line Three")
' Insert a picture at the specified position from the file.
Dim myPicture As DevExpress.XtraRichEdit.API.Native.Shape = document.Shapes.InsertPicture(document.CreatePosition(15), System.Drawing.Image.FromFile("Documents\beverages.png"))
' Specify the picture alignment.
myPicture.HorizontalAlignment = DevExpress.XtraRichEdit.API.Native.ShapeHorizontalAlignment.Center
#End Region ' #AddFloatingPicture
End Sub
Private Shared Sub FloatingPictureOffset(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#FloatingPictureOffset"
' Load a document from a file.
wordProcessor.LoadDocument("Documents\Grimm.docx", DevExpress.XtraRichEdit.DocumentFormat.OpenXml)
' Access a document.
Dim document As DevExpress.XtraRichEdit.API.Native.Document = wordProcessor.Document
' Specify the document's measure units.
document.Unit = DevExpress.Office.DocumentUnit.Centimeter
If document.Shapes.Count > 1 Then
' Access a picture.
Dim myPicture As DevExpress.XtraRichEdit.API.Native.Shape = document.Shapes(1)
' Clear the horizontal and vertical alignment values.
myPicture.HorizontalAlignment = DevExpress.XtraRichEdit.API.Native.ShapeHorizontalAlignment.None
myPicture.VerticalAlignment = DevExpress.XtraRichEdit.API.Native.ShapeVerticalAlignment.None
' The picture's horizontal position is relative to the left margin.
myPicture.RelativeHorizontalPosition = DevExpress.XtraRichEdit.API.Native.ShapeRelativeHorizontalPosition.LeftMargin
' The picture's vertical position is relative to the top margin.
myPicture.RelativeVerticalPosition = DevExpress.XtraRichEdit.API.Native.ShapeRelativeVerticalPosition.TopMargin
' Specify the offset value.
myPicture.Offset = New System.Drawing.PointF(4.5F, 2.0F)
End If
#End Region ' #FloatingPictureOffset
End Sub
Private Shared Sub ChangeZorderAndWrapping(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#ChangeZorderAndWrapping"
' Load a document from a file.
wordProcessor.LoadDocument("Documents\Grimm.docx", DevExpress.XtraRichEdit.DocumentFormat.OpenXml)
' Access a document.
Dim document As DevExpress.XtraRichEdit.API.Native.Document = wordProcessor.Document
If document.Shapes.Count > 1 Then
' Access a picture.
Dim myPicture As DevExpress.XtraRichEdit.API.Native.Shape = document.Shapes(1)
' Align the picture vertically.
myPicture.VerticalAlignment = DevExpress.XtraRichEdit.API.Native.ShapeVerticalAlignment.Top
' Specify the picture position in the z-order.
myPicture.ZOrder = document.Shapes(CInt((0))).ZOrder - 1
' Display document text over the picture.
myPicture.TextWrapping = DevExpress.XtraRichEdit.API.Native.TextWrappingType.BehindText
End If
#End Region ' #ChangeZorderAndWrapping
End Sub
Private Shared Sub AddTextBox(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#AddTextBox"
' Access a document.
Dim document As DevExpress.XtraRichEdit.API.Native.Document = wordProcessor.Document
' Append text to the document.
document.AppendText("Line One" & Global.Microsoft.VisualBasic.Constants.vbLf & "Line Two" & Global.Microsoft.VisualBasic.Constants.vbLf & "Line Three")
' Insert a text box at the specified position.
Dim myTextBox As DevExpress.XtraRichEdit.API.Native.Shape = document.Shapes.InsertTextBox(document.CreatePosition(15))
' Align the text box horizontally.
myTextBox.HorizontalAlignment = DevExpress.XtraRichEdit.API.Native.ShapeHorizontalAlignment.Center
' Specify the text box background color.
myTextBox.Fill.Color = System.Drawing.Color.WhiteSmoke
' Draw a border around the text box.
myTextBox.Line.Color = System.Drawing.Color.Black
myTextBox.Line.Thickness = 1
' Modify text box content.
Dim textBoxDocument As DevExpress.XtraRichEdit.API.Native.SubDocument = myTextBox.ShapeFormat.TextBox.Document
textBoxDocument.AppendText("TextBox Text")
' Format the boxed text.
Dim cp As DevExpress.XtraRichEdit.API.Native.CharacterProperties = textBoxDocument.BeginUpdateCharacters(textBoxDocument.Range.Start, 7)
cp.ForeColor = System.Drawing.Color.Orange
cp.FontSize = 24
textBoxDocument.EndUpdateCharacters(cp)
#End Region ' #AddTextBox
End Sub
Private Shared Sub InsertRichTextInTextBox(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#InsertRichTextInTextBox"
' Load a document from a file.
wordProcessor.LoadDocument("Documents\Grimm.docx", DevExpress.XtraRichEdit.DocumentFormat.OpenXml)
' Access a document.
Dim document As Document = wordProcessor.Document
' Access a text box.
Dim myTextBox As Shape = document.Shapes(0)
' Allow text box resize to fit contents.
myTextBox.ShapeFormat.TextBox.HeightRule = TextBoxSizeRule.Auto
Dim boxedDocument As SubDocument = myTextBox.ShapeFormat.TextBox.Document
Dim appendPosition As Integer = myTextBox.ShapeFormat.TextBox.Document.Range.[End].ToInt()
' Append the second paragraph of the main document to the boxed text.
Dim newRange As DocumentRange = boxedDocument.AppendDocumentContent(document.Paragraphs(CInt((1))).Range)
boxedDocument.Paragraphs.Insert(newRange.Start)
' Insert an image form the main document into the text box.
boxedDocument.Images.Insert(boxedDocument.CreatePosition(appendPosition), document.Images(CInt((0))).Image.NativeImage)
' Resize the image so that its size equals the image in the main document.
boxedDocument.Images(0).Size = document.Images(0).Size
#End Region ' #InsertRichTextInTextBox
End Sub
Private Shared Sub RotateAndResize(ByVal wordProcessor As DevExpress.XtraRichEdit.RichEditDocumentServer)
#Region "#RotateAndResize"
' Load a document from a file.
wordProcessor.LoadDocument("Documents\Grimm.docx", DevExpress.XtraRichEdit.DocumentFormat.OpenXml)
' Access a document.
Dim document As DevExpress.XtraRichEdit.API.Native.Document = wordProcessor.Document
' Check all shapes in the document.
For Each s As DevExpress.XtraRichEdit.API.Native.Shape In document.Shapes
' Rotate pictures.
If s.Type = DevExpress.XtraRichEdit.API.Native.ShapeType.Picture Then
' Resize text boxes.
s.RotationAngle = 45
Else
s.ScaleX = 0.1F
s.ScaleY = 0.1F
End If
Next
#End Region ' #RotateAndResize
End Sub
End Class
End Namespace