FPDF - Bei Zeilenumrbuch Einrückung - wie?

Thorsten23523

Grünschnabel
Hallo zusammen,

bin auf der google-Suche bei euch gelandet und habe mich gleich mal registriert!

Ich erzeige aus einer Datenbank ein pdf - das hätte man sich schon fast denken können :)

Nun zu meiner Frage:

Ich lese ein Array aus und gebe dies in einem Rahmen als Liste wieder. Den Aufzählungspunkt mache ich einfach so:
$test[$nummer] = chr(149)." ".$test[$nummer]);

Die Ausgabe erfolgt dann über Multicell - Zeile für Zeile.
Das Problem ist, das die jeweiligen texte ($test) länger sind als eine Zeile - d.h. Multicell macht einen Zeilenumbruch. Jetzt würde ich aber für die zweite Zeile gerne eine Einrückung vornehmen - NUR WIE? :confused:

Meine Ideen:
1. Ich lese das array aus und setze nach einer bestimmten Zeichenanzahl ein /n
2. ich mache den Bulletpoint in ein Multicell vor das Multicell mit der Textausgabe

Beide Lösungen erscheinen mir zu kompliziert, da die komplette Tabelle schon sehr "zusammengeeschustert" ist - fällt euch eine bessere Lösung ein?

Vielen Dank schonmal für eure Antworten - bin sehr gespannt!

Schöne Grüße

Thorsten
 
Bei Idee 1 währen dann auch keine einrückungen.

Die einzige akkurate möglichkeit ist die Cell davor mit den Punkten. Ist ja auch nicht weiter kompliziert. Und der Text wird schön Bündig
 
  • Aufzählungszeichen sind in der Regel ja immer Oben-Bündig und nicht mittig Zentriert.
  • Die Zeilenhöhe der Multicell ignorierst du einfach.
    So erstellst du eine Cell die so hoch ist wie als ob der Text der Multicell nur eine Zeile hätte.
    Dahinter die Multicell die mehrere Zeilen hat, und jedes mal wieder vorne anfängt.
    Nach einem ln() steht der Pointer wieder vorne, unter der breiteren Zeile.

PS: als Liste das man das Ganze nochmal sieht :)

PDF`s haben ja keine Tabellenstruktur wo alle Felder gleich groß sein müssen, sondern sogesehen besteht ein PDF nur aus Layern die absolut Possitioniert werden.
 
Zuletzt bearbeitet:
Sorry das ich nochmal nachhake - vielleicht bin ich das auch falsch angegangen -
ich bewege mich da in Spalte 3 - Spalte 1 und Spalte 2 sind farbig hinterlegt - sprich wenn ich diese Lösung wählen würde - der Text aber 2 Spaltig ist, bleibt eine kleine weisse Fläche unterhalb des BulletPoints...
Deshalb bräuchte ich die Höhe der Multicell...
Vielen Dank schonmal für Deine Mühe!
 
Keine Idee?
Wie messe ich am besten die multicell-höhe - soll ich die array-länge bestimmen und mir dann überlegen wann wohl ein Zeilenumbruch käme? das wäre aber ein ganz schönes Gefriemel und wahrscheinlich auch recht ungenau!
Brauche ja gar keinen Code - nur Anregungen ;-)

Beste Grüße
Thorsten
 
Du kannst auch zuerst die Multicell Zeichnen Lassen und anschließend den Punkt davor. Musst nur die X-Koordinate vorher speichern, um 10 pixel nach links verschieben. 2. X Koordninate speichern, zur ersten springen, den Punkt davor machen und wieder zur 2. springen.


Die Höhe des Letzten elementes bekommst du in $pdf->ln oder $pdf->lnc glaub ich :> Irgend so ne Variable gabs da.

Was du auch machen könntest und wohl noch ein wenig einfacher in der Handhabung ist eine eigene funktion aus Multicell abzuleiten. Die eine Multicell generiert mit 10 pixel innenabstand zur linken box-seite. Und dann den Punkt mit einer einfachen Cell in den freien bereich zu setzen, ohne Hintergrund (oder so). Ich denke ich würde diesen Weg gehen wenn ich mehr Aufzählungen brauchen würde.
Mit einer vererbung bekommt man das ja einfach hin.
 
Also ich hab jetzt immer vor und nach dem multicell ein gety in ein array abgefragt - wenn die differenz zwischen Wert1[ i ] und Wert2[ i ] größer als eine Zeile war habe ich dann ein Kästchen unter die erste Zeile gezeichnet ;-))))
Auch wenn das vielleicht von der programmierlogik ein bisschen gefriemelt ist bin ich doch sehr stolz auf meine Lösung :)

Vielen Dank engelb für Deine Unterstützung!

Schöne Grüße
Thorsten
 

Neue Beiträge

Zurück