Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]fdpf + getX i getY
Forum PHP.pl > Forum > PHP
jacusek
Witam.
Rozpocząłem, małą przygodę z tą biblioteką - na razie wydruk prostych formularzy zrobionych w htmlu z przesłaniem do MYSQL. W warstwie dotyczącej przesyłania do bazy wszystko działa. Niestety mam problem jak poskładać wszystkie dane do siebie.
Otóż mam taki fragment kodu:
  1. $imie=$pdf->Text(60,45, $_POST['imie']);
  2. $x=$pdf->GetX();
  3. $x1=$pdf->SetX($x)+5;
  4. $nazwisko=$pdf->Text($x1,45,$_POST['nazwisko']);
  5. $wiek=$pdf->Text(160,45,(date('Y')-$_POST['rok_ur']));

I cały problem polega na tym, ze nie bardzo rozumiem jak mogę to ustawić w ten sposób żeby:
$imie wyświtlało się przed Snazwisko. Tzn. Imię wyświetla się tam gdzie go o to grzecznie proszę, a nazwisko jest niepokorne i ustawia się na początku linijki, zamiast za imieniem. Gdzie robię tutaj błąd? Niestety potrzebuję to zrobić właśnie w taki sposób, bo nigdy nie wiadomo jak długie będzie imię wpisane do formularza, a zostawianie z góry założonej przerwy spowoduje, że wydruk będzie wyglądał cokolwiek nienaturalnie przy stosunkowo krótkich imionach.
Z góry dzięki za pomoc
skowron-line
GetStringWidth to funkcja którą powinieneś się zainteresować.
jacusek
No właśnie chyba nie do końca o to chodzi. Już dokładnie opisuje: mam gotowy druczek z linijkami w które muszę się zmieści i chodzi o to, żeby po imieniu bez zbędnych przerw, można było od razu dopisać nazwisko.
Powiem w jaki sposób rozumuje, więc być może mam gdzie tutaj błąd
  1. $pdf->SetFont('arialpl','',14); //ustawia czcionkę arialpl, rozmiar 14
  2. $imie=$pdf->Text(60,45, $_POST['imie']); //przesyła w zadane miejsce zmienną z formularza
  3. $x1=$pdf->GetX($imie); // pobiera pozycje zmiennej $imie
  4. $x=$pdf->GetStringWidth($imie)+5; //określa długość ciągu za którym ma się ustawić kursor
  5. $x2=$pdf->SetX($x); //ustawia kursor
  6. $nazwisko=$pdf->Text($x2,45,$_POST['nazwisko']);//wstawia następną zmienną w żądane miejsce

Niestety efekt jest taki, że $nazwisko wstawia się na początek linii. I w tym momencie nie rozumiem dlaczego.
Z góry dziękuję za odpowiedź.

Rozwiązanie dla zainteresowanych - trochę na okrętkę, ale skutecznie:
  1. $pdf->
  2. $pdf->SetFont('arialpl','',14); //ustawia czcionkę arialpl, rozmiar 10
  3. $imie=$_POST['imie'];
  4. $nazwisko=$_POST['nazwisko'];
  5. $imie_naz="$imie $nazwisko";
  6. $imie=$pdf->Text(60,45, $imie_naz);

Bez konieczności używania dodatkowych funkcji.
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.