Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [tcpdf] - nie wyświetla tekstu w pdf
bertog
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Witam,
zaczalem zabawe z biblioteka "tcpdf" i mam nastepujacy problem: Pdf generuje się prawidłowo do momentu kiedy w tekscie nie pojawia sie polskie znaki i nie chodzi tu o to, ze w pdf wyswietlane sa krzaki. W momencie kiedy do tekstu dodaje polskie znaki generuje sie czysty pdf, a scislej mowiac nie wyswietla sie tekst zadeklarowany w zmiennej,np:
  1. $html = <<<EOD
  2. <p>żźćńąśłęó zxcnlsaw</p>
  3. EOD;

jezeli w zmiennej nie uzyje sie polskich znakow to pdf jest wszystko OK.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z tego co kojarze to tcpdf miał zawsze problemy z utf8. ALbo przerzuc sie na iso-8859-2 (nie wiem czy pomoze) albo kombinuj
http://stackoverflow.com/questions/5333702...-not-showing-up
Go to the top of the page
+Quote Post
bertog
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


To juz probowalem i nie pomaga. Najgorsze jest to, ze po przypisaniu zmiennej tekstu z polskimi znakami nie pokazuje sie w wygenerowanym pdf nic, zaden tekst. jezeli jako wartosc zmiennej dam:
  1. $html = <<<EOD
  2. żołędzie spadają z drzewa
  3. EOD;

to w efekcie w pdf nie bede mial wyswietlone NIC a nie np. "odzie spadaj z drzewa".
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co juz probowales? Zamienic na iso? Odpalic z parametrami z linka co podałem?
Go to the top of the page
+Quote Post
bertog
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Po zmianie na
  1. $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);

z tekstu="żołędzie spadają z drzewa"
w pdf wyswietla sie tekst podswietlony w zalaczniku.(IMG:http://bertog.olsztyn.pl/ekran.jpg)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No dobra, ale kodowanie tego:
żołędzie spadają z drzewa
tez masz odpowiednie ustawic.
Go to the top of the page
+Quote Post
bertog
post
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Nie bardzo rozumie, gdzies trzeba to jeszcze dopisac?
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W jakim kodowaniu edytujesz swoj plik? W utf8? To przy pomocy iconv() masz skonwertowac wszystkie teksty/zmiennej jakie wstawiasz do tcpdf/
Go to the top of the page
+Quote Post
bertog
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Ok. rozumiem, przekonwertowalem plik zrodlowy do ISO-8859-1 ale teraz mam nastepujacy blad:
TCPDF ERROR: Some data has already been output, can't send PDF file
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie kazalem ci konwertowac pliku, tylko zmienne. Z kodu co pokazales to tekst masz w zmiennych.

Co do bledu to wyraźnie napisali, ze wysylasz coś do przeglądarki wczesniej. Pewnie po kowenrsji doszly jakies białe znaki na poczatek, np BOM dla utf8
Go to the top of the page
+Quote Post
bertog
post
Post #11





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Ok.
Mam w zrodle tak:
  1. // Include the main TCPDF library (search for installation path).
  2. require_once('tcpdf.php');
  3.  
  4. // create new PDF document
  5. $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
  6.  
  7. .....
  8.  
  9. // Set some content to print
  10. $html = <<<EOD
  11. <h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;">&nbsp;<span style="color:black;">TC</span><span style="color:white;">PDF</span>&nbsp;</a>!</h1>
  12. <i>This is the first example of TCPDF library.ćććććć</i>
  13. <p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
  14. <p>Please check the source code documentation and other examples for further information.</p>
  15. <p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
  16. EOD;
  17.  
  18. iconv('ISO-8859-1', 'UTF-8', $html);
  19.  
  20. // Print text using writeHTMLCell()
  21. $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);


i dalej jest jak na obrazku.
(IMG:http://bertog.olsztyn.pl/ekran1.jpg)

co jeszcze jest nie tak.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://php.net/manual/en/function.iconv.php
I zobacz co oznacza ktory parametr iconv a nie strzelasz.
Go to the top of the page
+Quote Post
bertog
post
Post #13





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


Sorki, ale naprawde nie wiem o co chodzi z tym kodowaniem. Jak wypisuje sobie na ekranie wynik dzialania funkcji iconv() to tekst ze zmiennej sie wyswietla (zamias polskich znakow jakies krzaki) ale w pdf przy tych samych ustawieniach w zrodle dalej tak jak na poprzednim obrazku.
Potrzebuje wiecej wskazowek.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




toz ci mowie... zle podales parametru do iconv... Spojrz w linka, tam masz napisane co jest czym
Go to the top of the page
+Quote Post
bertog
post
Post #15





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


No to czytalem, pierwszy parametr wejsciowy czyli jak zakodowany jest tekst, parametr drugi to kodowanie wyjsciowe (docelowe), trzeci to łańcuch znakow, ktory ma byc przekonwertowany i tyle. Dalej nie wiem co jest nie tak.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #16





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A masz jak?
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i jak to ma sie do tego kodu
iconv('ISO-8859-1', 'UTF-8', $html);
?
No nijak.... wejscie masz w utf8 i chcesz miec wyjscie w iso. W kodzie napisales na odwrot
Go to the top of the page
+Quote Post
bertog
post
Post #18





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.12.2014

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


przykro mi ale i tak nie kapuje co jest nie tak.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #19





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@nospor idź odpocznij i wróć jutro (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Pyton tak właśnie zrobie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #21





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Proponuję skorzystać z mPDF, który nie ma problemów z polskimi znakami, a do tego całkiem nieźle wspiera tworzenie PDF'ów na podstawie HTML + CSS.
Go to the top of the page
+Quote Post
remiasz
post
Post #22





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

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


Witam
Mam podobny problem z polskimi znakami.
Pliki PHP kodowane są w windowsie i cała strona i baza pracują z tym kodowaniem.
Generalnie polskie znaki są. Np. skrypt:
  1. $pdf = new TCPDF('P', 'mm', 'A4');
  2. $pdf->AddPage();
  3. $text=iconv('Windows-1250','UTF-8',"ąćęłńóśźżĄĆĘŁŃÓŚŹŻ");
  4. $pdf->MultiCell(0,0, $text);
  5. $pdf->Output('przyklad.pdf', 'I');

generuje pdf'a z polskimi znakami tak jak trzeba.

Ale już zmiana kodu i wpisanie tekstu z pojedynczym ł powoduje że w PDF'ie tekst jest bialy na bialym - kompletnie niewidoczny mimo że można go zaznaczyć i skopiować
  1. $pdf = new TCPDF('P', 'mm', 'A4');
  2. $pdf->AddPage();
  3. $text=iconv('Windows-1250','UTF-8',"Wrocław");
  4. $pdf->MultiCell(0,0, $text);
  5. $pdf->Output('przyklad.pdf', 'I');


Czy ktoś wie co z takim fantem można zrobić?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.08.2025 - 10:47