PDF-Erzeugung – Teil 2

Die Do-Loop-Schleife

Innerhalb der Schleife müssen Sie dann nur nach jedem Feld den X-Wert erhöhen und nach jeder Zeile den Y-Wert erhöhen und den X-Wert wieder auf den Anfangswert 10 zurücksetzen. Die XPosition der einzelnen Felder hängt davon ab, wie viele Felder es gibt. Hier wird einfach die Breite der Seite, die über die .PDFPAGE_Width ausgelesen werden kann, durch die Anzahl Felder der Datensatzgruppe geteilt. Dieser Wert definiert den Endpunkt der Textbox und legt gleichzeitig den Anfang der nächsten Box fest, indem der Wert der Variablen lngX um den entsprechenden Wert erhöht wird.

Die Darstellung lässt noch etwas zu wünschen übrig (Listing 2). Wenn Sie jede zweite Zeile grau unterlegen möchten, müssen Sie dazu vor Ausgabe des Textes ein entsprechend großes Rechteck zeichnen.

Möchten Sie Rechtecke erzeugen und füllen, abwechselnd grau und weiß, müssen Sie zunächst bei der Ausgabe die Zeilen zählen, um dann vor jeder Ausgabe prüfen zu können, ob es sich um eine gerade oder ungerade Zeilennummer handelt. Dazu definieren Sie eine Variable lngZeile und zählen sie hoch.

Innerhalb der Do-Loop-Schleife prüfen Sie dann, ob lngZeile Mod 2 gleich 1 ist. In diesem Fall legen Sie als Füllfarbe ein helles Grau mit der Methode PDFPAGE_SetGrayFill fest. Als Wert übergeben Sie einen Wert zwischen 0 und 1 an die Methode. Je höher der Wert, desto heller ist das Grau.

Anschließend zeichnen Sie das Rechteck, das sich über die ganze Seitenbreite erstrecken soll, übergeben Sie 0 und die VariablenlngY-2 als Endposition, die Seitenbreite und die Variable lngY abzüglich 2 und zuzüglich der aus Schriftgröße und Zeilenabstand berechneten Zeilenhöhe.

Die Subtraktion von 2 ist zu empfehlen, damit die Schrift mittig innerhalb des Rechtecks angeordnet wird. Damit das gezeichnete Rechteck mit der definierten Füllfarbe gefüllt wird, müssen Sie dann die Fill-Methode aufrufen. Ganz wichtig isthierbei die Reihenfolge:

  • Füllfarbe festlegen,

  • Element, beispielsweise Rechteck, ausgeben,

  • Fill-Methode aufrufen.

Eine andere Reihenfolge führt zu Laufzeitfehlern.