Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: fpdf dziwna sprawa z GetStringWidth() ;)
Forum PHP.pl > Forum > Przedszkole
Jerronimo
Witam, mam taki problem. Chce sobie wygenerowac pdf przy wykorzystaniu fpdf w najnowszej wersji 1.6, jeśli się nie mylę. W klasie tej dodałem sobie taką małą funkcję do budowania tabelki:
  1. <?php
  2.  
  3. function tabela($x, $y, $dl, $wys, $text)
  4. {
  5.  
  6. $text = $this->_escape($text);
  7. $DlStr = $this->GetStringWidth($text) * 2.;
  8. $PozX = ((100 - $DlStr)/2) + $x ; 
  9.  
  10. $out = sprintf('%.2f %.2f %.2f %.2f re S BT %.2f %.2f Td (%s) Tj ET',
  11. $x, $y, $dl, $wys, $PozX, $y - 15, $text);
  12. $this->_out($out);
  13. return $PozX ;
  14. }
  15.  
  16. ?>


Chodzi w niej o to, żeby po podaniu lewego górnego rogu tabeli i tekstu zbudować tabelkę i żeby tekst był wyśrodkowany do tego służy GetStringWidth, jednak ta funkcja wydaje się dawać zbyt małe wartości i dlatego musiałem wynik, metodą prób i błędów pomnożyć przez 2.7, dlaczego? Ktoś zna odpowiedź?
kszychu
A czcionke ustawiasz przed pomiarem czy po? Bo GetStringWidth() mierzy długość tekstu dla określonej wcześniej czcionki, jej rozmiaru i stylu (SetFont()).
Jerronimo
Czcionka jest ustawiona metodą:
$pdf->SetFont('times', '', 12) ;
przed wypisaniem samej tabelki więc wszystko powinno być ok. Zmieniałem czcionki, rozmiary a wynik zwracany przez GetStringWidth() jest ok ale dopiero gdy go pomnożę przez 2.7 jakakolwiek czcionka by nie była ustawiona, dziwne nie? Coś w tym jest ale nie mam pojęcia o co chodzi.
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.