如果我对您的理解正确,您想在不使用报告工具的情况下在自己的程序中控制流程吗?在这种情况下,我将列出一些关于一种实现的想法 -
您可以使用包含区域和区域类型的(可序列化的)字典来制作简单的模板功能。当您使用绝对区域(标签本身)时,您可以例如这样做:
Private Template as Dictionary = New dictionary(Of String, TemplateEntry)
Friend Class TemplateEntry
Public MeasureType As MeasureType
Public RegionType As Regiontype
Public X As Single
Public Y As Single
Public Width As Single
Public Height As Single
Public Content as Object
End Class
Friend Enum MeasureType
Centimeters
Millimeters
Inches
Pixels
'...
End Enum
Friend Enum RegionType
Text
[Image]
BarCode
'...
End Enum
然后在您的代码中,您根据 DPI 将 x、y、w、h 转换为像素并返回Rectangle
例如。您可以对字典进行 XML 序列化以创建其他模板等。
该Content
字段在解析时被初始化。
要添加,您可以执行以下操作:
Dim tmpl As TemplateEntry = New TemplateEntry
tmpl.MeasureType = MeasureType.Millimeters
'...
Template.Add("Barcode", tmpl)
然后将模板“渲染”到您的画布中进行打印:
For Each tLine in Template
Dim r as rectangle = CalcMeasuresIntoPixels(tmpl)
'...
' render each element based on type and location
Next
希望这给了一些意见。