此主题相关图片如下:理想输出2.png
此主题相关图片如下:实际输出1.png
Dim doc As New PrintDoc '定义一个报表
Dim tbl As Table = Tables("DXJ")
'设置页面边距
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 5 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置上边距
Doc.PageSetting.BottomMargin = 20 '设置下边距
For i As Integer = tbl.TopRow To tbl.BottomRow
Dim rw As Row = tbl.Rows(i)
Dim rx0 As New prt.RenderText '定义一个文本对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim rx2 As New prt.RenderText '定义一个文本对象
Dim rx3 As New prt.RenderText '定义一个文本对象
Dim rx4 As New prt.RenderText '定义一个文本对象
Dim xxA As New prt.RenderText '定义一个文本对象
Dim xxB As New prt.RenderText '定义一个文本对象
Dim xxC As New prt.RenderText '定义一个文本对象
Dim xxD As New prt.RenderText '定义一个文本对象
Dim xxE As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea '定义一个容器
Dim j As Integer= i-tbl.TopRow+1
'加入题身
rx0.text = j & "." & ". " & rw("题身1")
rx0.Style.FontSize = 14 '大体大小为16磅
rx0.Style.Spacing.top = 2 '和下面的对象(表格)距离3毫米
rx0.Style.Spacing.Bottom = 1
ra.Children.Add(rx0) '加入到容器中
'题身1缩进
If len(rw("序号"))=1 Then
rx0.Style.TextIndent = 5
ElseIf len(rw("序号"))=2 Then
rx0.Style.TextIndent = 2.5
ElseIf len(rw("序号"))=3 Then
rx0.Style.TextIndent = 0
End If
rx2.text = rw("题身2")
rx2.Style.FontSize = 14 '大体大小为16磅
rx2.Style.TextIndent = 12.5
rx2.Style.TextAlignVert = prt.AlignVertEnum.Top
rx2.Style.Spacing.Bottom = 1
ra.Children.Add(rx2) '加入到容器中
rx3.text = rw("题身3")
rx3.Style.FontSize = 14 '大体大小为16磅
rx3.Style.TextIndent = 12.5
rx3.Style.Spacing.Bottom = 2
ra.Children.Add(rx3) '加入到容器中
rx4.text = rw("题身4")
rx4.Style.FontSize = 14 '大体大小为16磅
rx4.Style.TextIndent = 12.5
rx4.Style.Spacing.Bottom = 2
ra.Children.Add(rx4) '加入到容器中
'选项ABCDE
xxA.text = "A. " & rw("选项A")
xxA.Style.FontSize = 14 '大体大小为16磅
xxA.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
xxA.Style.TextIndent = 12.5
ra.Children.Add(xxA) '加入到容器中
xxB.text = "B. " & rw("选项B")
xxB.Style.FontSize = 14 '大体大小为16磅
xxB.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
xxB.Style.TextIndent = 12.5
ra.Children.Add(xxB) '加入到容器中
xxC.text = "C. " & rw("选项C")
xxC.Style.FontSize = 14 '大体大小为16磅
xxC.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
xxC.Style.TextIndent = 12.5
ra.Children.Add(xxC) '加入到容器中
xxD.text = "D. " & rw("选项D")
xxD.Style.FontSize = 14 '大体大小为16磅
xxD.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
xxD.Style.TextIndent = 12.5
ra.Children.Add(xxD) '加入到容器中
xxE.text = "E. " & rw("选项E")
xxE.Style.FontSize = 14 '大体大小为16磅
xxE.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
xxE.Style.TextIndent = 12.5
ra.Children.Add(xxE) '加入到容器中
'如果CDE没有内容
If rw("选项E")=Nothing Then
xxE.text= Nothing
End If
If rw("选项D")=Nothing Then
xxD.text= Nothing
End If
If rw("选项C")=Nothing Then
xxC.text= Nothing
End If
'条件排序,排成一排
If len( xxA.text ) <15 And len( xxB.text ) <15 And len( xxC.text ) <15 And len( xxD.text ) <15 Then
xxA.X= 0
xxA.Y = ""
xxB.X = 40
xxC.X = 80
xxC.Y= "Prev.TOP"
xxD.X = 120
xxD.Y = "Prev.TOP"
xxE.X = 0
xxE.Y = "Prev.TOP+6"
'排成两行
ElseIf len( xxA.text ) <30 And len( xxB.text ) <30 And len( xxC.text ) <30 And len( xxD.text ) <30 Then
xxA.X= 0
xxB.X = 80
xxC.X = 0
xxC.Y= "Prev.Bottom"
xxD.X = 80
xxD.Y = "Prev.Top"
xxE.Y = 0
xxE.Y = "Prev.Bottom"
End If
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
'第二个容器
'参考答案
Dim ckd As New prt.RenderArea '定义一个容器
Dim ckda As New prt.RenderText '定义一个文本对象
ckda.text = " 参考答案 "
ckda.Style.FontSize = 20 '大体大小为16磅
ckda.Style.TextColor = Color.Red '字符颜色设为红色
ckda.Style.Spacing.top = 5 '和下面的对象(表格)距离3毫米
ckda.Style.Spacing.Bottom = 1
ckd.Children.Add(ckda) '加入到容器中
doc.Body.Children.Add(ckd) '将文本对象加入到报表
'答案报表
'起始位置
Dim qswz As New prt.RenderText '定义一个文本对象
Dim qs As Integer = tbl.TopRow
Dim js As Integer = tbl.BottomRow
Dim gj As Integer
qs = qs + 1
js = js + 1
gj = js - qs + 1
qswz.text= "打印顺序:" & "从" & qs & "至" & js & "题,共计" & gj & " 题."
qswz.Style.Padding.Top = 5 '上边距5毫米
qswz.Style.Padding.Bottom = 5 '下边距5毫米
qswz.Style.FontBold = True '字体加粗
qswz.Style.FontSize = 16 '大体大小为16磅
qswz.Style.TextColor = Color.red
doc.Body.Children.Add(qswz) '将文本对象加入到报表
'答案排序
For i As Integer = tbl.TopRow To tbl.BottomRow Step 5
Dim rw As Row = tbl.Rows(i)
Dim h As Integer
Dim s As String = rw("答案")
For j As Integer = 1 To 4
If i+j <= tbl.BottomRow
rw = tbl.Rows(i+j)
s = s & rw("答案")
s=s.ToUpper
h = i-tbl.TopRow+1
End If
Next
Output.Show(h)
Dim xhda As New prt.RenderText '定义一个文本对象
Dim da As New prt.RenderArea '定义一个容器
da.Stacking = prt.StackingRulesEnum.InlineLeftToRight
da.Width = 45 '宽度53毫米
'da.Height = 24 '高度24毫米
da.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
da.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
Doc.Body.ChildRen.Add(da) '将容器加入到报表中
'加入标题
xhda.text = h & "-" & h+4 & ":" & s
xhda.Style.FontSize = 16 '大体大小为16磅
da.Children.Add(xhda) '加入到容器中
Next
Doc.Preview() '预览报表