Ok, also ich habe zwei Module, eines für die Daten, das andere fürs Layout.
Datenstruktur
Code:
TSection:
Columns: Integer
ColumnsWidth[]: Double
Paragraphs[]: TParagraph
Width: Double
TParagraph:
Items[]: TRun
TRun:
Text: String
FontSize: Double
FontName: String
Layout Struktur
Code:
TLayout
Width: Double
Height: Double
TLayoutSection (TLayout)
Data: TSection
Columns[]: TLayoutColumn
TLayoutColumn (TLayout)
Paragraphs[]: TLayoutParagraph
Parent: TLayoutSection
TLayoutParagraph (TLayout)
Lines[]: TLayoutLines
Parent: TLayoutSection
TLayoutLine (TLayout)
Items[]: TRun
Parent: TLayoutParagraph
Die TLayout Klassen, insbesondere TLayoutSection muss aus ihrem Parent (Data) die Spalten und deren (Teil-)Absätze sinnvoll generieren.