ciao a tutti.
ecco il mio problema:
con la solita pagina php leggo da un db un'anagrafica e la schiaffo sul browser. La pagina che presenta il risultato della query contiene anche un bel bottone "crea pdf" che mi posta i campi di ricerca ad un file creapdf.php che mi crea un file .pdf (usando la libreria fpdf) tutto bello impaginato e fatto bene.
E fin qui nessun problema.
Il problema sta qua: nell'anagrafica c'è anche un campo 'note' che può essere anche molto lungo.
Tutti i campi, diciamo a lunghezza standard, li scrivo con una Cell(), mentre quelli come il campo 'note' li scrivo con una Multicell() perchè la Cell(), se la stringa è troppo lunga se ne frega e va avanti a scrivere il testo rischiando di andare a coprire le scritte vicine. Mentre la Multicell(), se il testo è più lungo della larghezza della cella,fa da solo un bel 'a capo' e va avanti a scrivere.
Questo mi crea chiaramente problemi di impaginazione perchè io stampo una tabella e se in alcuni record il campo 'note' è lungo (quindi la Multicell() va a capo) mi ritrovo che il campo 'note' del record attuale va a sovrascrivere il campo 'note' del record successivo.
Ho fatto diversi tentativi per ovviare al problema ma senza risultato:
-scrivo tutti i campi con Multicell() sperando che tra Multicell "si capiscano" che una si è allargata e si allarghino tutte, ma nulla.
-con strlen controllo che il campo 'note' non sia troppo lungo, e se lo è raddoppio l'altezza della cella. Del tipo:
codice:
$y=6; //altezza standard per le celle
if (strlen($note) > 50)
$y=12; //altezza doppia se $note è troppo lungo
$this->Cell(35, $y, $cognome." ".$nome, 1, 0, 'C')
$this->Cell(35, $y, $azienda, 1, 0, 'C');
$this->Multicell(90, $y, $note, 1, 'L');
Ma la Multicell() scrive in centro alla cella (come altezza) quindi se va a capo mi allunga la cella ancora di più e in pratica mi ritrovo con una cella alta 4 volte una cella normale.
Infatti con il codice postato mi ritrovo con 'cognome nome' e 'azienda' in una cella alta 12 e 'note' in una cella che da codice ha altezza 12, ma sul pdf ha altezza 24.
Idee finite. Non so proprio come gestire la cosa. 
Altra domanda:
se tra un anno non mi piace più il font
codice:
$this->SetFont('Arial', '', 8);
e lo voglio mettere a 12, mi sballa tutta l'impaginazione? Per esempio la strlen() non dovrà più controllare con 50 ma magari con 40. Come posso tranquillamente cambiare il font evitando di dover andare poi a ricontrollare tutto e aggiustare l'impaginazione?