phpbar.de logo

Mailinglisten-Archive

[php] Druckbereich (FPDF)

[php] Druckbereich (FPDF)

Ron Opitz php_(at)_phpcenter.de
Tue, 1 Oct 2002 17:06:34 +0200


Am Dienstag, 1. Oktober 2002 15:29 schrieben Sie:
> Ich hab grad eine theoretische Lösung dafür gefunden:
>
> http://www.fpdf.org/phorum/read.php?f=1&i=1576&t=1566#1576
>
> Muss ich aber erst mal ne praktische draus machen *grumpfs*
>
> Viele Grüße, Mathias

Die Lösung ist doch gleich mit vorgegeben:
Vor der Zeile speicherst Du die Y-Pos (obere Kante der Zeile) in eine 
Variable. Die Tabellenfelder sind multicell (also mit Umbruch in der Celle
und fester Breite). Nach jedem multicell fragst Du die neue Y-Pos ab.
Ist die Y-Pos größer als vorher dann überschreiben. Zum Schluß ziehst Du
die Linien. Die X-Positionen sind ja bekannt feste Werte (Spaltenbreite) und 
die Y-Pos stehen in den Variablen.

Der Seitenumbruch ist ein wenig komplizierter. Als erstes die aktuelle Y-Pos
herausfinden. Dann die max-Höhe der Zeile ermitteln. Zum Prüfen ob der Text 
hineinpasst, würde ich bevor mit der Zeile begonnen wird die längen der Texte 
per strlen() ermitteln sowie die Zeilenschaltungen ermitteln "\n" und über 
eine Formel (z. B. 1 Zeilenhöhe = 0,5 cm und 30 Zeichen pro Zeile (ist ja von
der verwendeten Schriftart abhängig)) den benötigten Platz ermitteln. Das das
nicht immer passen kann (nichtproportionale Schriftarten) ist mir auch 
bekannt. 

!Ist nur so eine Idee!

Wie wäre es, wenn Du Cell verwendest und den überstehenden Rest einfach 
weglässt, natürlich nur wenn das Sinn macht. Bei der Lösung dieses Problems
knobel ich auch noch.

Gruss Ron


php::bar PHP Wiki   -   Listenarchive