Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Zmiana formatu pliku wynikowego
eurosoft
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Witam wszystkich, na wstępie przepraszam za pytanie (pewnie prozaiczne) ale nie wiem jak to potraktować....
Mam następujący problem:
posiadam skrypt php który generuje mi pewien raport w którym są m.in. tabelki i inne opisy. W skrypcie są odwołania do MySQL oraz znaczniki html. Wszystko działa,
ładnie się wypełnia (wypełniane dane zależne sa od adresu url w którym przekazuję interesujące mnie zmienne), chciałem aby user mógł wydrukować / zapisać wynik do
pliku pdf, natrafiłem na bibliotekę DOMPDF, ale ona wymaga podania pliku HTML, i tu pojawił się problem....
jak z mojego pliku php już uzupełnionego moimi danych stworzyć plik html.

dziękuje ze podpowiedź i prosze o wyrozumiałość za treść pytania.
Pozdrawiam
Go to the top of the page
+Quote Post
maniana
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


W dokumentacji DOMPDF masz podaną opcję load_html_file więc musisz podać adres URL pliku z parametrami.
Jeśli chcesz podać html jako zmienną to możesz wczytać plik za pomocą file_get_contents
Możesz też wygenerować plik odrazu do zmiennej:
  1. // tu generacja dokumentu
  2. $wynik= ob_get_contents();
Go to the top of the page
+Quote Post
eurosoft
post
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Więc tak:
mam plik drukuj.php
  1. <?php
  2. require_once("dompdf_config.inc.php");
  3. $dompdf = new DOMPDF();
  4. $dompdf->load_html_file("questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?");
  5. $dompdf->render();
  6. $dompdf->stream("hello.pdf");
  7. ?>

więc w miejscu questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif powinienem podać adres do mojego php-a
a adres skryptu jaki chciałbym przekonwertować do pdf to:
http://xxx.pl/yyy/kartaewidencyjna.php?a=v...imie_nazwisko=a

nie rozumiem do końca jak wygenerować odrazu lik do zmiennej.

Ten post edytował eurosoft 12.04.2012, 09:22:29
Go to the top of the page
+Quote Post
maniana
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Do pliku drukuj przesyłasz te same zmienne getem a w miejscu podawania pliku wpisujesz URL (z http://) przedrukowywujesz zmienne z $_GET do urla.
  1. $dompdf->load_html_file('http://xxx.pl/yyy/kartaewidencyjna.php?a='.$_GET['a'].'&imie_nazwisko='.$_GET['imie_nazwisko']);
Go to the top of the page
+Quote Post
eurosoft
post
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


zrobiłem wg wskazówek mem teraz taką postać pliku drukuj.php

  1. <?php
  2. $a = trim($_GET['a']);
  3. $imie_nazwisko = trim($_GET[imie_nazwisko]);
  4.  
  5. require_once("dompdf_config.inc.php");
  6. $dompdf = new DOMPDF();
  7. $dompdf->set_paper('letter','landscape');
  8. $dompdf->load_html_file('http://www.xxx.pl/yyy/zzz/kartaewidencyjna.php?a='.$_GET['a'].'&imie_nazwisko='.$_GET['imie_nazwisko']);
  9. $dompdf->render();
  10. $dompdf->stream("hello.pdf");
  11. ?>


  1. link którym odwołuję się do pliku drukuj to:
  2. echo "<td width=40 align=center><a href=\"drukuj.php?a=view&amp;imie_nazwisko={$r[login]}\"><img src=img/ikony/drukuj.png title=Drukuj style=width:16px;height:16px;border:0px; /></a></td>";


Masz może jeszcze jakis pomysł jak to zrobić?

Ten post edytował eurosoft 12.04.2012, 13:34:31
Go to the top of the page
+Quote Post
maniana
post
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Mi działa ok. Tylko w konfigu należy zmienić linijkę:
  1. def("DOMPDF_ENABLE_REMOTE", true);
Jakieś błędy są widoczne?
Go to the top of the page
+Quote Post
eurosoft
post
Post #7





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Miałem na false, zmieniłem ale bez efektów,
więc jeszcze raz:
mam katalog np 1 w nim katalog dompdf w nim jest plik drukuj.php i kartaewidencyjna.php (piszę to bo może ścieżki mam skopane)
drukuj.php
  1. <?php
  2.  
  3. $a = trim($_GET['a']);
  4. $imie_nazwisko = trim($_GET[imie_nazwisko]);
  5.  
  6. require_once("dompdf_config.inc.php");
  7. $dompdf = new DOMPDF();
  8. //$dompdf->set_paper('A4','landscape');
  9. $dompdf->load_html_file('kartaewidencyjna.php?a='.$_GET['a'].'&imie_nazwisko='.$_GET['imie_nazwisko']);
  10. //$dompdf->load_html_file('indexx.html');
  11. $dompdf->render();
  12. $dompdf->stream("dokument.pdf");
  13. ?>


w katalogu 1 mam plik users.php w nim jest tabelka z kolejnymi rekordami pisanymi przez MySQL
w tabelce jest kolumna z linkiem
<td width=40 align=center><a href=\"dompdf/drukuj.php?a=view&amp;imie_nazwisko={$r[login]}\"><img src=img/ikony/drukuj.png title=Drukuj style=width:16px;height:16px;border:0px; /></a></td>

wynik: "Witryna sieci web nie może..."

trochę truję ale czuję się już bezsilny.....

aha! jeszcze jedno, jak zmienię w pliku drukuj.php na $dompdf->load_html_file('indexx.html'); to otwiera mi się plik pdf exclamation.gif

Ten post edytował eurosoft 12.04.2012, 14:24:11
Go to the top of the page
+Quote Post
maniana
post
Post #8





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Adres pliku podany w load_html_file musi być adresem URL czyli http://... Czyli pełen adres na lokalu czy serwerze. Musi też poprawnie otwierac sie w przeglądarce.
Go to the top of the page
+Quote Post
eurosoft
post
Post #9





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Tak, tak to wynik moich kombinacji
mam taki link:
$dompdf->load_html_file('http://www.xxx.pl/robocza/low/kartaewidencyjna.php?a='.$_GET['a'].'&imie_nazwisko='.$_GET['imie_nazwisko']);

otwiera się w przeglądarce poprawnie................:-(

Cytat(eurosoft @ 12.04.2012, 15:32:17 ) *
Tak, tak to wynik moich kombinacji
mam taki link:
$dompdf->load_html_file('http://www.xxx.pl/robocza/low/kartaewidencyjna.php?a='.$_GET['a'].'&imie_nazwisko='.$_GET['imie_nazwisko']);

otwiera się w przeglądarce poprawnie................:-(



teraz sprawdziłem jeszcze w setup-ie i przy opcji DOMPDF_ENABLE_REMOTE mam true, ale jednak pokazuje mi na czerwono: allow_url_fopen disabled
Go to the top of the page
+Quote Post
maniana
post
Post #10





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


allow_url_fopen oznacza ustawienie na serwerze (php.ini), zabrania otwierania plików z zewnątrz...

Zobacz tak:
  1. $a = trim($_GET['a']);
  2. $imie_nazwisko = trim($_GET['imie_nazwisko']);
  3.  
  4. include 'kartaewidencyjna.php';
  5. $wynik = ob_get_contents();
  6.  
  7. require_once("dompdf_config.inc.php");
  8. $dompdf = new DOMPDF();
  9. $dompdf->load_html($wynik);
  10. $dompdf->render();
  11. $dompdf->stream("dokument.pdf");
Upewnij się, że zmienne $a i $imie_nazwisko są widoczne w kartaewidencyjna.php
Go to the top of the page
+Quote Post
eurosoft
post
Post #11





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


OK Hurrrrrrrrrrrrrrrra!! narazie mam pdfa, a masz (pewnie tak) złoty środek na polskie znaki?
Go to the top of the page
+Quote Post
maniana
post
Post #12





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


DOMPDF powinien mieć przekonwertowane fonty z polskimi znakami. Zobacz czy dokument html jest w tym samym kodowaniu co zadeklarowane w konfigu.
Go to the top of the page
+Quote Post
eurosoft
post
Post #13





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


nie bardzo wiem w jakiej sekcji tego szukać, w każdym razie dokument mam w ISO-8859-2
a w setupie mam coś takiego: DOMPDF_DEFAULT_FONT 'serif'
Jeśli to nie to to prosze podaj sekcję jakiej mam szukać
Go to the top of the page
+Quote Post
maniana
post
Post #14





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


W konfigu domyślnie jest:
Cytat
mb_internal_encoding('UTF-8');
Zmień to, ew. przetestuj dokument w UTF.
Go to the top of the page
+Quote Post
eurosoft
post
Post #15





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


niestety nie podziałało, zarówno zmiana kodowania strony i zmiana w configu i odwrotnie.....
Go to the top of the page
+Quote Post
maniana
post
Post #16





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


W takim razie pozostaje przeszukanie googla lub przekonwertowanie własnych fontów.
Zobacz tu: http://forum.php.pl/index.php?showtopic=67663 lub tu: http://bukox.pl/php/dompdf-i-polskie-znakie/
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 - 12:35