不行,还是错误,我已经使用RenderText类型实现了段落排版.就是在段落中不能实现上标和正常字体两种设置.
Dim doc As New PrintDoc
Dim ra As New prt.RenderArea
Dim s As String = ""
ra.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim tb as Table = CurrentTable
For r As integer = 0 To tb.Rows.Count -1 '从上而下排版内容
For c As Integer = 0 To tb.Cols.Count -1 '从左到右排版内容
If r > 0 AndAlso tb(r,c) <> tb(r - 1,c) AndAlso c = 0 OrElse r = 0 AndAlso c = 0 Then
Dim rt As New prt.RenderText '定义第一列文本
rt.Text = Chr(13) & tb(r,c) & Chr(13)
rt.Style.TextColor = Color.DarkGreen
rt.Style.Borders.Bottom = New prt.Linedef(Color.Green) '设置底边框
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.Font = New Font("黑体", 16, FontStyle.Bold) '设置字体
ra.Children.Add(rt)
ElseIf r > 0 AndAlso tb(r,c) <> tb(r-1,c) AndAlso c = 1 OrElse r = 0 AndAlso c = 1 Then
Dim rt As New prt.RenderText '定义第二列文本
rt.Text = Chr(13) & tb(r,c) & Chr(13)
rt.Style.TextColor = Color.Red '字符颜色设为红色
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.Font = New Font("楷体", 14, FontStyle.Bold) '设置字体
ra.Children.Add(rt)
ElseIf r > 0 AndAlso tb(r,c) <> tb(r-1,c) AndAlso c = 2 OrElse r = 0 AndAlso c = 2 Then
Dim rt As New prt.RenderText '定义第三列文本
rt.Text = Chr(13) & tb(r,c) & Chr(13)
rt.Style.TextColor = Color.DarkBlue '字符颜色设为红色
ra.Children.Add(rt)
Dim rt1 As New prt.RenderText '1
rt1.Text = s
rt1.Style.TextColor = Color.Black
rt1.Style.TextIndent = 9 '首行缩进9毫米
rt.Style.Font = New Font("楷体", 12, FontStyle.Regular) '设置字体
ra.Children.Add(rt1)
s = ""
ElseIf c = 3 Then
s = s & ""
ElseIf c = 4 Then
s = s & tb(r,c)
End If
Next
Next
doc.Body.Children.Add(ra)
Doc.preview()
此主题相关图片如下:error.jpg