Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]FPDF i multicell
Forum PHP.pl > Forum > Przedszkole
narki1
Witam
Mam problem z multicellem przy generowaniu pdf-a.
W dokumentacji jest napisane ,że przełamanie linii może nastąpić po napotkaniu końca komórki lub poprzez zastosowanie znaku \n. No i normalnie nie wiem jak ten znak zastosować.
Mam tak:
  1. <?php
  2. $pdf->multiCell(80,5,'Dlugi tekst ,który chciałbym przełamać tutaj \n i pisać w nowej linijce ale mi to nie wychodzi ',1,'L');
  3. ?>
ToAr
Aby zadziało "\n" musisz umieścić tekst w podwójnym cudzysłowie, czyli

  1. <?php
  2. $pdf->multiCell(80,5,"Dlugi tekst ,który chciałbym przełamać tutaj \n i pisać w nowej linijce ale mi to nie wychodzi ",1,'L');
  3. ?>
skowron-line
Polecam Ci obejrzeć wynik w kilku programach do pdfów bo w niektórych w miejsce \n wskoczy Ci kwadrat, tak samo jest z \t.
8_pasarzer_NOSTROMO
A ja mam inne pytanko do tematu.

Czy da się ustalić wysokość wiersza, na którym kończy się wypis funkcji MultiCell.

Przykładowo
  1. $pdf->Multicell(0,4, 'Ten tekst z zamierzenia miał być długi, w każdym razie raczej nie powinien zmieścić się w jednej linijce, ale nie ma żadnego problemu, funkcja Multicell() służy do wprowadzania tekstu z zawijaniem, ba jeśli tekst będzie dłuższy od strony, utworzy ona nową! ',0, 'J',0);



Chciałbym wiedzieć jaki jest numer kolejnego wiersza aby pod tym tekstem wypisać kolejny i żeby na siebie nie zachodziły.


$pdf->Multicell(0,4, '$zadanie1 ',0, 'J',0);

Ale w tym przypadku żeby wypis zaczynał się zaraz po wypisaniu Zadania nr 1. Czyli aby wysokość linii przyjął kolejny po wypisie $zadanie1.
$pdf->Multicell(0,4, '$zadanie2 ',0, 'J',0);


Chyba że ktoś ma inny pomysł.

ToAr
  1. $y = 26
  2. $pdf->SetY($y);
  3. $y=$pdf->GetY();
  4. $pdf->Multicell(0,4, '$zadanie1 ',0, 'J',0);
  5. $y += 4;
  6. $pdf->SetY($y);
  7. $pdf->Multicell(0,4, '$zadanie2 ',0, 'J',0);
8_pasarzer_NOSTROMO
@ ToAr

Niestety ten kod nie wyświetla zadań jedno pod drugim, tylko dziwnym trafem jakoś na zmianę. Jedno z drugim. Może napisze dokładnie co mi trzeba. Mam 10 zmiennych tj: $zadanie1,$zadanie2,$zadanie3 ... $zadanie10. Zmienne mogą mieć różne rozmiary, od jednego zdania do wielu. Nie zawsze wszystkie występują. Chciałbym stworzyć PDF aby zadania od 1 do 10 wypisywał jedno pod drugim w zależności od tego czy występują czy nie. Oczywiście w przypadku gdy mają dużo treści aby skrypt tworzył nową stronę.
  1. [/php]
  2.  
  3. Np.
  4. [php]
  5. if ($zadanie1!=''){$pdf->Multicell(0,4, '$zadanie1 ',0, 'J',0);}
  6. if ($zadanie2!=''){$pdf->Multicell(0,4, '$zadanie2 ',0, 'J',0);}
  7. if ($zadanie3!=''){$pdf->Multicell(0,4, '$zadanie3 ',0, 'J',0);}
  8. ...
  9. if ($zadanie10!=''){$pdf->Multicell(0,4, '$zadanie10 ',0, 'J',0);}
  10.  


Warunkiem jest to aby zadania nie zachodziły na siebie i żeby automatycznie dodawało stronę gdy któreś z zadań wyleci za obszar strony.
ToAr
Spróbuj rozwiązanie z tego linka
http://www.roxxor.co.uk/blog/2007/10/wrapp...df-table-cells/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.