Dim doc As New PrintDoc
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
' 设置页面边距
doc.PageSetting.LeftMargin = 10
doc.PageSetting.RightMargin = 10
doc.PageSetting.TopMargin = 10
doc.PageSetting.BottomMargin = 10
Dim rt As New prt.RenderTable
'rt.Style.GridLines.All = New prt.LineDef
rt.CellStyle.Spacing.All = 1 '单元格内容和网格线距离1毫米
rt.Cols.Count = 1 '总列数为3
doc.Body.Children.Add(rt)
'doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
' 获取数据
'Dim Table As DataTable = DataTables("小学生健康检查表")
Dim rowCount As Integer = 50 'Table.DataRows.Count
' 定义5个二维码类型和标题
Dim qrTypes() As String = {"形态二维码", "视力二维码", "五官二维码", "血压二维码", "内科二维码"}
Dim qrTitles() As String = {"形态检查", "视力检查", "五官检查", "血压测量", "内科检查"}
For i As Integer = 0 To rowCount - 1
' Dim Row As DataRow = Table.DataRows(i)
Dim studentName As String = "班-" & i 'Row("班次").ToString() & "班-" & Row("姓名").ToString()
' 创建行容器
Dim rowContainer As prt.RenderArea = rt.Cells(i, 0).Area
rowContainer.Stacking = prt.StackingRulesEnum.InlineLeftToRight
' rowContainer.Width = mainContainer.Width
rowContainer.Style.Spacing.Right = 2
' mainContainer.Children.Add(rowContainer)
'doc.Body.Children.Add(rowContainer)
' 左侧姓名区域
Dim nameArea As New prt.RenderArea
nameArea.Width = 20
nameArea.Height = 25
nameArea.Style.Padding.All = 1
Dim nameText As New prt.RenderText
nameText.Text = studentName
nameText.Style.TextAlignHorz = prt.AlignHorzEnum.Center
nameText.Style.TextAlignVert = prt.AlignVertEnum.Center
nameArea.Children.Add(nameText)
rowContainer.Children.Add(nameArea)
' 右侧二维码区域
For j As Integer = 0 To qrTypes.Length - 1
Dim qrData As String = "Row(qrTypes(j)).ToString()"
Dim label As New prt.RenderArea
label.Width = 30
label.Height = 25
label.Style.Padding.All = 1
label.Style.Borders.All = New prt.Linedef(0.3, Color.Blue)
Dim rx As New prt.RenderText
rx.Text = qrTitles(j)
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
label.Children.Add(rx)
' If Not String.IsNullOrEmpty(qrData) Then
' Try
Dim qr As New BarCodeBuilder
qr.Symbology = Barpro.Symbology.QRCode
qr.Code = qrData
qr.BarRatio = 0.35
Dim img As New prt.RenderImage
img.Image = qr.GetImage()
img.Width = 16
img.Height = 16
img.X = 6
img.Y = "Prev.Bottom + 2"
img.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
label.Children.Add(img)
rowContainer.Children.Add(label)
Next
Next
doc.Preview()