Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

13 Stron V  « < 8 9 10 11 12 > »   
Reply to this topicStart new topic
> generowanie plików *.pdf + polskie czcionki
MartinPL
post 20.11.2009, 11:41:45
Post #181





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.04.2009

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


wtedy pdf w ogole mi sie nie generuje

Kod
Warning: mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\GOLD_NEW\public_files\raporty\raport_miesieczny_zapis.php on line 8

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\GOLD_NEW\public_files\raporty\raport_miesieczny_zapis.php on line 8
FPDF error: Some data has already been output, can't send PDF file


poczatek pliku generujacego pdf-y wyglada tak

Kod
<?php
# definiowanie ustawien bazy
define("MYSQL_HOST", "localhost");
define("MYSQL_USER", "root");
define("MYSQL_PASS", "");
define("MYSQL_DB", "GOLD");

//mysql_query("SET NAMES 'utf8'"); <-- jesli to odhaszuje to pojawia sie to co pokazalem
//mysql_query("SET CHARACTER_SET 'utf8_unicode_ci'");

$polacz = mysql_connect("".MYSQL_HOST."", "".MYSQL_USER."", "".MYSQL_PASS."") or die(mysql_error());
mysql_select_db("".MYSQL_DB."",$polacz) or die(mysql_error());




tak zeby nie bylo nie domowien, te same dane zwracane do przegladarki wygladaja prawidlowo





Ten post edytował MartinPL 20.11.2009, 11:47:01
Go to the top of the page
+Quote Post
DannyM
post 20.11.2009, 11:49:41
Post #182





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


a co z czcionkami PL masz?
Go to the top of the page
+Quote Post
MartinPL
post 20.11.2009, 12:53:03
Post #183





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.04.2009

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


 ustawilem tak

Kod
$pdf->AddFont('arial_ce','','arial_ce.php');
$pdf->AddPage();
$pdf->AddFont('arial_ce','B','arial_ce_b.php');
$pdf->Cell(0,5,'Raport prowizyjny dla Agenta '.$dane.' '.$imie.'',0,1,'C');
$pdf->Cell(0,5,'za okres '.$miesiac.'.'.$rok.' r.',0,1,'C');
 

i wlasnie rzecz w tym ze stringi znajdujace sie pod zmienna $dane oraz $imie itp itd sa bez polskich znakow.

Ten post edytował MartinPL 20.11.2009, 12:56:26
Go to the top of the page
+Quote Post
Agape
post 22.12.2009, 13:00:42
Post #184





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

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


nie ten post sory - do usuniecia

Ten post edytował Agape 22.12.2009, 13:04:55


--------------------
Go to the top of the page
+Quote Post
DannyM
post 22.12.2009, 13:07:34
Post #185





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Niestety nie pomoge bo nie mam czcionek winksmiley.jpg
Go to the top of the page
+Quote Post
Brick
post 30.12.2009, 17:10:17
Post #186





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

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


Męczyłem ten temat przez ostatnie kilka dni.
Poszukiwałem biblioteki która wygeneruje mi PDF z podanego kodu HTML bez jakiś ciężkich kombinacji i przerabiania kodu.
Postanowiłem podzielić się ze wszystkimi moimi doświadczeniami. Mam nadzieję że komuś się to jeszcze przyda.

1. FPDF
Nie jest to gotowiec który sam przemieli HTML+CSS i wypluje gotowego PDF'a.
Trzeba tu wszystko robić "ręcznie" czyli ustawiać położenia, fonty, elementy itd. Na bazie FPDF powstały inne biblioteki o czym poniżej:

2. html2fpdf
Strona projektu fatalna, wygląda jakby autor wszystkie siły zużył na tworzeniu biblioteki i stronę zrobił ktoś inny;)
Po wygrzebaniu z sieci ostatnie wersji i zainstalowaniu pojawia się oczywiście nieśmiertelny problem z polskimi fontami. Przerobiłem cały ten cyrk z generowaniem polskich czcionek i w końcu udało mi się wygenerować PDFa z polskimi znakami.
Niestety bardziej rozbudowany kod HTML (tabelki, css) kładzie wszystko. Cały tekst się po prostu rozwala. Krótko mówiąc idea dobra ale jeszcze daleko do prawidłowego rozwiązania.

3. dompdf
Strona projektu na szczęście dość dobra. Udało mi się to uruchomić razem z polskimi fontami (oczywiście z kombinacjami). Niestety przy bardziej rozbudowanym HTMLu skrypt się wywala sypiąc błędami.

4. mpdf
Porządnie opracowana strona projektu, w zakładce "Documentation" wszystko porządnie napisane z przykładami.
Co najważniejsze nie trzeba kombinować z polskimi czcionkami. Biblioteka wspiera różnego rodzaju czcionki, nawet chińskie czy arabskie.
Generuje PDF'a o przyzwoitym rozmiarze, z polskimi znakami. Dobrze radzi sobie z rozbudowanym HTML'em i CSS
Oto przykład
Zdecydowanie polecam

Wygląda na to że na obecną chwilę nic lepszego nie znajdę.
Zatem jeżeli ktoś szuka rozwiązania na HTML -> PDF - to polecam pobierać MPDF

Poniżej kilka porad i uwag (dotyczy wersji aktualnej w chwili pisania posta czyli 4.1.1):
  • Biblioteka zawiera gotowe czcionki ale są to darmowe odpowiedniki popularnych czcionek. Autor pisze że to ze względu na prawa autorskie. Niczemu to nie przeszkadza, wszystko wygląda przyzwoicie. Jest możliwość zastosowania własnych czcionek ale tematu nie zgłębiałem
  • Skrypt poprawnie interpretuje większość tagów HTML i CSS ale nie wszystko. Główny problem jest z elementami DIV, dlatego w przykładowym dokumencie musiałem je zamienić na tabelki.
  • Szerokość komórek czy tabeli wyrażona w procentach nie jest poprawnie interpretowana gdy tabela jest osadzona w innej. Przykładowo WIDTH=100% jest pomijany.
  • Jest możliwość załadowania zewnętrznego pliku CSS podczas generowania PDF'a
  • Domyślne kodowanie wsadowego HTML'a to UTF-8 ale jest funkcja do konwertowania innych kodowań na UTF
  • Domyślne kodowanie PDF'a czyli wyjściowe to WINDOWS-1252. Trzeba ustawić wyjściowe kodowanie na ISO lub UTF. Uwaga! PDF'a z kodowaniem UTF waży kilka razy więcej niż z ISO

Kilka przykładów zastosowania (biblioteka znajduje się w katalogu "mpdf"):

1. Hello World, bez polskich fontów, PDF wysyłany do przeglądarki
  1. include('mpdf/mpdf.php');
  2. $mpdf=new mPDF();
  3. $html = "<p>Hello World!</p>";
  4. $mpdf->WriteHTML($html);
  5. $mpdf->Output();


2. HTML z polskimi znakami (ISO-8859-2) czytany z pliku, PDF zapisywany na dysku
  1. include('mpdf/mpdf.php');
  2. $html = file_get_contents("moj_plik.html");
  3. $mpdf=new mPDF('iso-8859-2');
  4. $mpdf->allow_charset_conversion=true;
  5. $mpdf->charset_in='ISO-8859-2';
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("moj_plik.pdf","F");


3. HTML z polskimi znakami (ISO-8859-2) czytany z pliku, CSS z pliku, PDF zapisywany na dysku, ustawiamy marginesy dokumentu na 10mm
  1. include('mpdf/mpdf.php');
  2. $mpdf=new mPDF('iso-8859-2','', 0, '', 10, 10, 10, 10, 0, 0, 'P');
  3. $mpdf->allow_charset_conversion=true;
  4. $mpdf->charset_in='ISO-8859-2'; //wejściowe kodowanie to ISO
  5. $stylesheet = file_get_contents('style.css');
  6. $mpdf->WriteHTML($stylesheet,1);
  7. $mpdf->WriteHTML($html);
  8. $mpdf->Output("moj_plik.pdf","F");


To by było na tyle. Wszelkie uwagi mile widziane.
Mam nadzieję że ktoś skorzysta.


--------------------
Wszystko należy robić najprościej jak się da, ale nie prościej
Albert Einstein
Go to the top of the page
+Quote Post
polishmilk
post 2.02.2010, 21:06:21
Post #187





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


Witam,
dotychczas moje pliki .pdf czy .rtf były generowane z wcześniej przygotowanych szablonów. Tym razem potrzebuje czegoś takiego:
Z bazy danych wyszukiwane są osoby spełniające dane kryteria( to żaden problem), wyświetlają się osoby oraz formularz, gdzie w checbox'ach wypisane są kryteria które mają być wyświetlone w pdf'ie (np, pobiera wszystkie dane ale chcę żeby wyświetliło się imię, nazwisko i tel.) czy jest możliwość wygenerowania takiego pdf'a??. Proszę o jakąś wskazówkę. Dodam jeszcze, że chciałbym wydrukować wszystkie osoby spełniające wcześniejsze warunki na jednej stronie, a nie każdą z osobna.
Go to the top of the page
+Quote Post
Brick
post 2.02.2010, 22:45:34
Post #188





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

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


To klasyczne zadanie PHP, nic w tym niezwykłego nie ma: pobrać dane z bazy i wyświetlić. Z tym że zamiast "wyświetlić" ma być "zapisać w pdf'ie".
Dane przygotowujesz tak jakby miały pojawić się na ekranie, tylko zamiast wyświetlać zapisujesz je do zmiennej, np $html.
Potem wykorzystując bibliotekę mpdf generujesz dokument pdf.
W moim poprzednim poście jest to opisane.


--------------------
Wszystko należy robić najprościej jak się da, ale nie prościej
Albert Einstein
Go to the top of the page
+Quote Post
mariosoft
post 3.02.2010, 09:12:50
Post #189





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 15.09.2006

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


Witam

Ja poszukuję natomiast sposobu lub biblioteki, która potrafi konwertować Latex-a zagnieżdżonego w tekście na dokument PDF. Czy to jest do napisania w PHP?


--------------------
mathml + xhtml = matematyka
Go to the top of the page
+Quote Post
Brick
post 3.02.2010, 11:40:10
Post #190





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

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


Nie spotkałem w swoich poszukiwaniach biblioteki PHP która to obsługuje. Nie wiem, może jest, ale trochę wątpię. Skoro najlepsza jaką udalo mi się znaleźć ma problemy ze wszystkimi elementami HTML to co dopiero z tym latex.


--------------------
Wszystko należy robić najprościej jak się da, ale nie prościej
Albert Einstein
Go to the top of the page
+Quote Post
Niconn
post 11.02.2010, 12:16:29
Post #191





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 11.02.2010

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


Brick bardzo fajna biblioteka , przetestowalem to u siebie w Zendzie i dziala ladnie .. podpiolem swoje kodowanie i polskie czcionki tez sa czego nei moglem zrobic w fpdf . Jak narazie zapowiada sie ciekawie , musze tylko do tego przysiasc.
Dzieki bardzo za rade ... biblioteka mpdf jest chyba tym czego szukalem do generowania pdfow, dokladniej stwierdze jak ja potestuje.
Go to the top of the page
+Quote Post
slummer
post 13.06.2010, 10:11:38
Post #192





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.03.2009
Skąd: Olsztyn

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


Witajcie
Mam taki problem z TCPDF, jak wstawie czcionke bez polskich znakow to skrypt generuje mi jedna strone w przeciagu ok sekundy, a gdy wybiore jakas z polskimi znakami to generacja jednej strony PDF trwa ponad 15 sekund. Znalazlem rozwiazanie do FPDF gdzie trzeba bylo zakomentowac jednego headera, jednak w przypadku TCPDF nie wiem jak pgo przyspieszyc. Moze ktos z was mial taki problem.
Pozdro.
Go to the top of the page
+Quote Post
dziamdziak
post 22.06.2010, 02:12:30
Post #193





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.04.2009

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


Czy w tym dokumencie używasz możesz kilku czcionek? U mnie przy dwóch czcionkach (Times New Roman + Bold) pdfy kilku stronicowe zajmują ok 0,5 mb.

Ten post edytował dziamdziak 22.06.2010, 02:12:57
Go to the top of the page
+Quote Post
chipoldo
post 5.08.2010, 12:15:13
Post #194





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.12.2008
Skąd: Gostyń/Reda

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


Brak literki 'Ś' i 'ą' w generowanym PDF. Polskie czcionki wygenerowałem. Pozostałe polskie znaki są, brakuje tylko tych dwóch znaków. Jeśli pobieram z bazy dane to te 'Ś' i 'ą' wyświetlają się prawidłowo, problem pojawia się gdy chce na sztywno wpisać te znaki. Można je jakoś zastąpić ?
Go to the top of the page
+Quote Post
erix
post 5.08.2010, 12:19:03
Post #195





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wniosek: używaj takiego samego kodowania przy wpisywaniu, co pobierane z bazy. A jak nie możesz - iconv.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
chipoldo
post 5.08.2010, 12:27:43
Post #196





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.12.2008
Skąd: Gostyń/Reda

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


Cytat(erix @ 5.08.2010, 13:19:03 ) *
Wniosek: używaj takiego samego kodowania przy wpisywaniu, co pobierane z bazy. A jak nie możesz - iconv.

Ale problem nie pojawia przy wyświetlaniu danych z bazy. W pobieraniu danych jest wszystko ok - wykorzystuje iconv. Problem tkwi przy generowaniu napisu, który jest na sztwyno wrzucony w generator FPDF. $PDF->Cell(1,1,"Śążźęł"..). ś i ą wyświetla jako kratki w PDF, reszta polskich znaków jest ok.

Poradziłem sobie po prostu na sztywno wpisując | zamist Ś i ? zamiast ą, ale być może jest bardziej ładne rozwiązanie ?smile.gif

Ten post edytował chipoldo 5.08.2010, 14:01:19
Go to the top of the page
+Quote Post
dziamdziak
post 12.08.2010, 22:59:31
Post #197





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.04.2009

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


A nie latwiej skompilowac sobie czcionki zeby chodzily z polskimi znaczkami?
Go to the top of the page
+Quote Post
DannyM
post 13.08.2010, 07:44:16
Post #198





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Moze ktorys z kolegow podzieli sie czcionkami bo nie mam wingrowsa i nie mam jak skompilowac czcionek
Go to the top of the page
+Quote Post
dziamdziak
post 13.08.2010, 07:46:09
Post #199





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.04.2009

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


Jakich potrzebujesz? Mam tylko jakiegoś times'a na stanie
Go to the top of the page
+Quote Post
DannyM
post 13.08.2010, 08:07:40
Post #200





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Przyjme kazde byle sprawdzone i dzialajace w PL bo nie mam na czym testowac smile.gif
Go to the top of the page
+Quote Post

13 Stron V  « < 8 9 10 11 12 > » 
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 Wersja Lo-Fi Aktualny czas: 16.04.2024 - 18:32