Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Drukowanie formularza
raqqos
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.06.2005
Skąd: Płock

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


Chciałbym, żeby po kliknięciu na przycisk drukowało mi tylko to co jest w formularzu, bez ścieżki dostępu na górze strony ani żadnego nagłówka. Czy jest coś takiego możliwe w php?
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




W php jak najbardziej. Zapisujesz to co chesz do pdf (lub rtf lub czegoś inneego) i wyrzucasz do przeglądarki jako plik do ściągnięcia. Wówczas gościu zrobi se z tym co będzie chciał.
Go to the top of the page
+Quote Post
raqqos
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.06.2005
Skąd: Płock

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


Cytat
Zapisujesz to co chesz do pdf (lub rtf lub czegoś inneego) i wyrzucasz do przeglądarki jako plik do ściągnięcia.
A czy mógłbyś konkretniej jakis schemacik zapodać?

Po przemyśleniu (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :nie jestem pewien czy w moim przypadku to będzie taki dobry pomysl. Taki pdf musialbym generowac dla kazdego klienta, a w ciagu dnia moze ich byc sporo, więc problemem moze byc ilosc miejsca na dysku na te pliki. Nie ma innego sposobu?

Ten post edytował raqqos 19.07.2005, 06:52:52
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 do miejsca na pliki. NIkt nie każe ci ich zapisywać na dysku. Generujesz w php i kod pdf rzucasz do przeglądarki z odpowiednim nagłówkiem. Ja swego czasu robiłem wersję do wydruku w rtf. MIałem wzorzec, w nim miałem miejsce na wstawienie swoich danych któe chciałem wydrukować. Zczytywałem wzorzec, wstawialem dane i do klienta rzucałem.
Kod do rzucenia do klienta:
  1. <?php
  2.  
  3. Header('Content-Type: application/rtf');
  4. Header('Content-Length: '.strlen($rtf));
  5. Header('Content-disposition: inline; filename=guarantee.rtf');
  6. echo $rtf;//zawartość rtf
  7.  
  8. ?>

Po za tym jak juz się uprzesz zapisywac pliki na dysku to rzucaj je do konkretnego katalogu, który raz na jakiś czas będziesz czyścił
Go to the top of the page
+Quote Post
raqqos
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.06.2005
Skąd: Płock

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


Dzieki nospor! Zrobiłem to na rtf-ach. Pieknie dziala (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Jakby kogoś interesowalo to kod pliku do pobierania rtfa wyglada u mnie tak:
  1. <?php
  2.  
  3.  header('Content-Type: application/rtf');
  4.  header('Content-disposition: inline, filename=do_druku.rtf');
  5.  
  6.  $d1 = $HTTP_POST_VARS['id'];
  7.  $d2 = $HTTP_POST_VARS['imie'];
  8.  $d3 = $HTTP_POST_VARS['nazwisko'];
  9.  $d4 = $HTTP_POST_VARS['ulica'];
  10.  $d5 = $HTTP_POST_VARS['nr_dom_lok'];
  11.  $d6 = $HTTP_POST_VARS['miejscowosc'];
  12.  $d7 = $HTTP_POST_VARS['sygnatura_wniosku'];
  13.  
  14.  $dzis = date(&#092;"d.m.Y\");
  15.  
  16.  $nazwa_pliku = 'wzorzec_odmowa.rtf';
  17.  $wp = fopen($nazwa_pliku, 'r');
  18.  
  19.  $wyswietl = fread($wp, filesize($nazwa_pliku));
  20.  
  21.  fclose($wp);
  22.  
  23.  $wyswietl = str_replace('<<data>>', $dzis, $wyswietl);
  24.  $wyswietl = str_replace('<<sygnatura>>', $d7, $wyswietl);
  25.  $wyswietl = str_replace('<<imie>>', $d2, $wyswietl);
  26.  $wyswietl = str_replace('<<nazwisko>>', $d3, $wyswietl);
  27.  $wyswietl = str_replace('<<ulica>>', $d4, $wyswietl);
  28.  $wyswietl = str_replace('<<nr_dom_lok>>', $d5, $wyswietl);
  29.  $wyswietl = str_replace('<<miejscowosc>>', $d6, $wyswietl);
  30.  
  31.  echo $wyswietl;
  32.  tworz_stopke_html();
  33.  
  34. ?>


A mam jeszcze pytanie odnośnie headera. Czy da sie go polaczyc z funkcja require_once w tym samym pliku? Ja musialem kombinowac i rozdzielac zapis do bazy i pobieranie rtfa w 2 odzielnych plikach bo w jednym wyskakiwal błąd: headers already sent....
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




Ja bym tylko u ciebie zamienił:
  1. <?php
  2.  
  3. $wyswietl = str_replace('<<data>>', $dzis, $wyswietl);
  4. $wyswietl = str_replace('<<sygnatura>>', $d7, $wyswietl);
  5. $wyswietl = str_replace('<<imie>>', $d2, $wyswietl);
  6. $wyswietl = str_replace('<<nazwisko>>', $d3, $wyswietl);
  7. $wyswietl = str_replace('<<ulica>>', $d4, $wyswietl);
  8. $wyswietl = str_replace('<<nr_dom_lok>>', $d5, $wyswietl);
  9. $wyswietl = str_replace('<<miejscowosc>>', $d6, $wyswietl);
  10.  
  11. ?>

na:
  1. <?php
  2.  
  3. $search = array('<<data>>', '<<sygnatura>>', '<<imie>>', '<<nazwisko>>', '<<ulica>>', '<<nr_dom_lok>>', '<<miejscowosc>>');
  4. $replace = array($dzis, $d7, $d2, $d3, $d4, $d5, $d6);
  5. $wyswietl = str_replace($search, $replace, $wyswietl);
  6.  
  7. ?>
Zastosowanie tablic będzie bardziej efektywne.

Co do
Cytat
headers already sent
należy na początku skryptu dać ob_start(). Temat się czesto na forum przewija możesz ewentualnie jeszcze poszukać jak nadal nie będzie działało
Go to the top of the page
+Quote Post
raqu
post
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.07.2005
Skąd: Płock

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


Nie moge sobie poradzic z taką kwestią (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Mam ten pliczek pobierz_odmowe.php i wygląda on tak
  1. <?php
  2.  header('Content-Type: application/rtf');
  3.  header('Content-disposition: inline, filename=do_druku.rtf');
  4.  
  5.  $znaki=array(&#092;"ą\"=>\"ą\",\"ś\"=>\"ś\",\"Ľ\"=>\"ź\",\"ˇ\"=>\"Ą\",\"Ś\"=>\"Ś\",\"Ź\"=>\"Ź\");
  6.  
  7.  $d1 = $HTTP_POST_VARS['id'];
  8.  $d2 = strtr($HTTP_POST_VARS['imie'], $znaki);
  9.  $d3 = strtr($HTTP_POST_VARS['nazwisko'], $znaki);
  10.  $d4 = strtr($HTTP_POST_VARS['ulica'], $znaki);
  11.  $d5 = $HTTP_POST_VARS['nr_dom_lok'];
  12.  $d6 = $HTTP_POST_VARS['kod'];
  13.  $d7 = strtr($HTTP_POST_VARS['miejscowosc'], $znaki);
  14.  $d8 = $HTTP_POST_VARS['sygnatura_wniosku'];
  15.  
  16.  $dzis = date(&#092;"d.m.Y\");
  17.  
  18.  $nazwa_pliku = 'wzorzec_odmowa.rtf';
  19.  $wp = fopen($nazwa_pliku, 'r');
  20.  $wyswietl = fread($wp, filesize($nazwa_pliku));
  21.  fclose($wp);
  22.  
  23.  $search = array('<<data>>', '<<sygnatura>>', '<<imie>>', '<<nazwisko>>', '<<ulica>>', '<<nr_dom_lok>>', '<<kod>>', '<<miejscowosc>>');
  24.  $replace = array($dzis, $d8, $d2, $d3, $d4, $d5, $d6, $d7);
  25.  $wyswietl = str_replace($search, $replace, $wyswietl);
  26.  
  27.  echo $wyswietl;
  28. ?>

Problem w tym ze na jednym kompie skrypt normalnie generuje plik do_druku.rtf a na innym to nie chce dzialac. Jak klikam na formularz to mi pobiera ten wlasnie plik pobierz_odmowe.php z paskudnie sformatowanym tekstem. Może cos trzeba zmienic w ustawieniach phpa? Aha dziala na kompie z win98 a nie chce z XP ale to chyba bez roznicy, a krasnal wszedzie ten sam.
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




Mi paskudnie sformatwany text wyskakiwal, gdy w jakimkolwiek skrypcie przed <? i po ?> były białe znaki czyli spacje, entery itp. Gdy wyrzucasz plik do downloadu, nic poza nim nie może wyjść do przeglądarki. Głupia spacja rozwali ci wszystko.
pousuwaj więc we wszystkich skryptach które są tu używane wszystkie białe znaki z początku i końcu pliku. powinno pomóc. Pamiętaj - Wszystkie!!!.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 01:18