私があなたを正しく理解しているなら、あなたはレポートツールを使わずにあなた自身のプログラム内でプロセスをコントロールしたいですか?その場合、私は1つの実装についてのいくつかの考えをリストします-
リージョンとリージョンタイプを含む(シリアル化可能な)ディクショナリを使用して、単純なテンプレート機能を作成できます。絶対領域(ラベル自体)を操作する場合、たとえば次のようにすることができます。
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
次に、コードでx、y、w、hをDPIに基づいてピクセルに変換し、Rectangle
たとえばaを返します。辞書を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
これがいくつかの入力を与えたことを願っています。