C1PrintDocumentの文字列に囲み枠の指定
Private Sub MakeDoc1(ByVal doc As C1PrintDocument)
' ドキュメントのタイトルを作成
Dim rp As New RenderParagraph()
rp = New RenderParagraph()
'フォントの指定
rp.Style.Font = New Font("MS Pゴシック", 36)
'文字列の指定
rp.Content.Add(New ParagraphText("ここに文字列を入力", TextPositionEnum.Normal))
'文字の表示
doc.Body.Children.Add(rp)
' GetCharRectメソッドを使用するためには、文字の位置を計算するために
' まず最初にドキュメントを作成しなければなりません。
' その後再びドキュメントを作成して、個々の文字の周囲に
' 赤い四角形を描画します。
doc.Generate()
Dim textLength As Integer = rp.TextLength
' フラグメントには描画オブジェクトに関する情報が含まれます:
' rpオブジェクトの最初のフラグメントを取得
Dim rpf As RenderParagraphFragment = CType(rp.Fragments(0), RenderParagraphFragment)
' テキストの中のすべての文字に対して繰り返し
Dim i As Integer
For i = 0 To textLength - 1
' 文字の座標を取得
' 座標はC1PrintDocument.ResolvedUnit単位で返却されます
Dim charRect As RectangleD = rpf.GetCharRect(i)
' 文字を囲む四角形を作成
Dim r As New RenderRectangle()
' すべての四角形の座標を指定
r.X = New Unit(rpf.Bounds.Left + charRect.Left, doc.ResolvedUnit)
r.Y = New Unit(rpf.Bounds.Top + charRect.Top, doc.ResolvedUnit)
r.Width = New Unit(charRect.Width, doc.ResolvedUnit)
r.Height = New Unit(charRect.Height, doc.ResolvedUnit)
' 図形(四角形)の座標をオブジェクトの相対位置で指定
r.Rectangle.X = 0
r.Rectangle.Y = 0
r.Rectangle.Width = r.Width
r.Rectangle.Height = r.Height
r.Style.ShapeLine = New LineDef("1pt", Color.Blue)
' オブジェクトに四角形を追加
doc.Body.Children.Add(r)
Next i
End Sub