Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]fdpf + getX i getY
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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

Ten post edytował jacusek 3.05.2010, 19:17:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


GetStringWidth to funkcja którą powinieneś się zainteresować.
Go to the top of the page
+Quote Post
jacusek
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:29