Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] html2fpdf - FPDF error: Font file not found, nie znajduje pliku chociaz jest, z uprawnieniami 777
Agape
post
Post #1





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


Korzystam ze skryptu html2fpdf który umożliwia tworzenie pdf z html'a. Żeby używać polskich znaków trzeba skonwertować odpowiednio czcionki z Windowsa. Skopiowałem więc czcionki z katalogu Fonts z Windows 7, skonwertowałem na .php i .z, umieściłem w katalogu font skryptu i ciągle wyświetla ten błąd, mimo, że mam chmody plików i katalogów na 777. Plik tam jest i zajmuje więcej niż 0 a skrypt ciągle mi wywala błąd ;/

  1. function tworz_pdf($dane_wejsciowe, $plik_wyjsciowy){
  2. require('panel/html2fpdf/html2fpdf.php');
  3. $pdf=new HTML2FPDF();
  4. $pdf->AddFont('arialpl','','arialpl.php');
  5. $pdf->AddFont('arialpl','B','arialbdpl.php');
  6. $pdf->AddFont('arialpl','I','arialipl.php');
  7. $pdf->SetFont('arialpl','',18);
  8. $pdf->AddPage();
  9. $pdf->WriteHTML($dane_wejsciowe);
  10. if($plik_wyjsciowy=='przegladarka') $pdf->Output(); else
  11. $pdf->Output($plik_wyjsciowy);
  12. }


linijka sprawdzająca czy plik istnieje, w skrypcie fpdf.php:
  1. $size=filesize($file);
  2. if(!$size)
  3. $this->Error('Font file not found');


sciana.gif

Ten post edytował Agape 22.12.2009, 13:11:06


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
Plik tam jest i zajmuje więcej niż 0 a skrypt ciągle mi wywala błąd
- plik może tam być, a skąd mamy wiedzieć, czy ścieżka jest poprawna? Do sprawdzenia, czy plik istnieje polecam funkcję file_exists

PS. Jeśli pliku nie ma to funkcja filesize powinna wygenerować warning, masz włączone wyświetlanie komunikaty błędów? Jeśli nie to poszukaj na forum, jak je włączyć (było wiele razy, jak zmienić poziom raportowania błędów).
Go to the top of the page
+Quote Post
Agape
post
Post #3





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


Folder jest dobry, wg opisów znalezionych w internecie.

Kod
Notice: Undefined variable: e in /........./panel/html2fpdf/html2fpdf.php on line 949

Warning: filesize() [function.filesize]: stat failed for font/arialpl.z in /............/panel/html2fpdf/fpdf.php on line 1813
FPDF error: Font file not found


linijka 1813 to ta która wypisałem w poprzednim poście

Ten post edytował Agape 22.12.2009, 13:35:56


--------------------
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Wyświetl ścieżkę do pliku bo na pewno jest zła, skoro filesize zwraca błąd, ewentualnie nie masz dostępu do tego pliku, jeśli jest on na innym serwerze lub w zastrzeżonym folderze.
Go to the top of the page
+Quote Post
Agape
post
Post #5





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


plik z czcionka: .../www/strona/panel/html2fpdf/font/arialpl.z

Listing katalogu, plik tu jest:
  1. arialbdpl.php 22-Dec-2009 12:27 4.2K
  2. arialbdpl.z 22-Dec-2009 12:27 27K
  3. arialipl.php 22-Dec-2009 12:27 4.2K
  4. arialipl.z 22-Dec-2009 12:27 28K
  5. arialpl.php 22-Dec-2009 12:27 4.2K
  6. arialpl.z 22-Dec-2009 12:27 27K
  7. courier.php 13-Dec-2009 14:07 257
  8. helvetica.php 13-Dec-2009 14:07 3.1K
  9. helveticab.php 13-Dec-2009 14:07 3.1K
  10. helveticabi.php 13-Dec-2009 14:07 3.1K
  11. helveticai.php 13-Dec-2009 14:07 3.1K
  12. makefont/ 22-Dec-2009 12:32 -
  13. symbol.php 13-Dec-2009 14:07 3.0K
  14. times.php 13-Dec-2009 14:07 3.1K
  15. timesb.php 13-Dec-2009 14:07 3.1K
  16. timesbi.php 13-Dec-2009 14:07 3.1K
  17. timesi.php 13-Dec-2009 14:07 3.1K
  18. zapfdingbats.php 13-Dec-2009 14:07 3.0K


skrypt wywalający errory: /www/strona/panel/html2fpdf/fpdf.php

Mój skrypt do generowania pdf o którym mówie znajduje się w katalogu /www/strona/plik.php, zawartosc:
  1. function tworz_pdf($dane_wejsciowe, $plik_wyjsciowy){
  2. require('panel/html2fpdf/html2fpdf.php');
  3. $pdf=new HTML2FPDF();
  4. $pdf->AddFont('arialpl','','arialpl.php');
  5. $pdf->AddFont('arialpl','B','arialbdpl.php');
  6. $pdf->AddFont('arialpl','I','arialipl.php');
  7. $pdf->SetFont('arialpl','',18);
  8. $pdf->AddPage();
  9. $pdf->WriteHTML($dane_wejsciowe);
  10. if($plik_wyjsciowy=='przegladarka') $pdf->Output(); else
  11. $pdf->Output($plik_wyjsciowy);
  12. }



Errory z error_reporting(E_ALL);:
Kod
Notice: Undefined variable: e in .../www/strona/panel/html2fpdf/html2fpdf.php on line 949

Notice: Undefined variable: e in .../www/strona/panel/html2fpdf/html2fpdf.php on line 949

Warning: filesize() [function.filesize]: stat failed for font/arialpl.z in .../www/strona/panel/html2fpdf/fpdf.php on line 1813
FPDF error: Font file not found


--------------------
Go to the top of the page
+Quote Post
Pilsener
post
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
.../www/strona/panel/html2fpdf/font/arialpl.z
- nie podoba mi się ta ścieżka. Użyj:

c:/www/etc/itp/itd
www/etc/itp/itd
../www/etc/itp/itd
../../www/etc/itp/itd
etc/itp/itd

Ps > Wiem, że plik tam jest, problem jest ze ścieżką lub dostępem do pliku

Coś tam includujesz, plik includowany też coś tam includuje i łatwo się pogubić. Pamiętaj, że ścieżka ma się odnosić względem uruchamianego skryptu, aby się dowiedzieć w jakiej lokalizacji skrypt jest uruchamiany dodaj kod:
  1. print_r($_SERVER);
- powinno wyświetlić wszystkie ścieżki.

Go to the top of the page
+Quote Post
Agape
post
Post #7





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


Miałeś racje z tymi ścieżkami. Trzeba było do pliku fpdf.php, zaraz po linijce
  1. function AddFont($family,$style='',$file='')

dodać:
  1. $pdf->AddFont('arialpl','','arialpl.php');
  2. $pdf->AddFont('arialpl','B','arialbdpl.php');
  3. $pdf->AddFont('arialpl','I','arialipl.php');

wtedy bierze fonty ze swojego katalogu (html2fpdf/)


Mam jednak jeszcze jeden problem, mianowicie z kodowaniem.
Skonwertowałem czcionki z windows do skryptu do kodowania iso-8859-2 (podobnież tylko ten obsługuje polskie znaki w tej klasie). Poustawiałem wszędzie kodowanie utf-8, w pliku w head, w mysql w polach oraz całej bazie, metode porównywania napisów też i teraz konwertuje znaki do ISO8859-2:
  1. $dane_wejsciowe = iconv("UTF-8", "ISO8859-2", $dane_wejsciowe);


PDF się tworzy, ale niestety nie ma polskich znaków. np:
Kod
ś = ¶,  ą = ±


Próbowałem zmienić kodowanie na to które poleca autor windows-1252 ale z tego co pamiętam tam i tak nie ma polskich znaków. UTF-8 też nie przejdzie. Wyświetlają się same ?
Męcze się z tym dziś już spory czas i nie wiem co jest nie tak, robię wszystko jak piszą w tutorialach wykorzystania klasy i mimo to nie działa :| sciana.gif

Ten post edytował Agape 26.12.2009, 12:59:17


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 11:50