PDA

Zobacz pełną wersję : generowanie formularza PHP do druku



bm2hd
24-02-06, 21:32
Mam takie pytanie , mam utworzony formularz który wrzuca sie do bazy danych na serwerze , ale nie wiem jak zrobić żeby po jego wypełnieniu można było go jeszcze wydrukować , wiem jak zrobić eksport do pliku np *.doc ale jesli w ten sposób tworzę plik to w :arrow: "Łordzie" nie mam uzupełnionych pół , jedynie tylko te w których domyślnie nadałem jakąś wartość. Podejrzewam żę chyba jedynym rozwiazaniem jest wygenerowanie wypełnionego formularza np do okienka popup i z tego miejsca zrobić export do pliku ????? Czy ktoś może mi coś sensownego podpowiedzieć??

krYsti
25-02-06, 00:26
Chyba nie bardzo rozumiem. Dokument w Wordzie potrzebujesz tylko po to, żeby go wydrukować? A czemu nie drukujesz dynamicznie wygenerowanej strony www?
"doc" nie jest formatem prawidłowo obsługiwanym w Internecie. Szybciej z rtf-em coś zrobisz. A jak już koniecznie musisz coś genegować do druku, to chyba najpewniej będzie zrobić pdf-a.
Wyjaśnij mi do czego ten doc ma służyć i jak jest generowany, może coś poradzimy.

bm2hd
25-02-06, 09:48
Praktycznie nie wiem jak wygenerować dynamiczną stronę do wydruku przykłady które sobie znalazlem generowały okno popup z linkiem który ściągał gotową wersję do druku bez mozliwośći "wypełniania" To jest generowanie do DOCA którego urzywałem :


i w tekscie umieszczałęm link do eksportu
<?php if ($sExport == "") { ?>
Export to Word (form.php?export=word)
<?php } ?>[/code]

Nie mam wynagań że musi być to eksport do pliku , obojetnie jaka forma byle wypełniając formularz informacje wskakiwały do bazy i była mozliwość druku, albo generowało sie okinko ze sformatowanym tekstem , bo w zasadzie to juz w takiej formie można wszytsko zrobić :D Pozdrawiam

piotrg
25-02-06, 09:59
Zainteresuj się biblioteką fpdf

tomasz rakoczy
25-02-06, 10:48
http://wwww.trintlan.nazwa.pl/formularz/



<?
if &#40;$_POST&#91;check&#93;=="1"&#41;



&#123;
//Tutaj kod ktry zapisze dane do bazy
//dane pobiera sobie z &#58; $_POST&#91;nazwa pola&#93;
&#125;

?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<style type="text/css">
<!--

body &#123;
font-family&#58; sans-serif;
&#125;

.tytul &#123;
background-color&#58; #cccccc;
text-align&#58; center;
font-size&#58; 16px;
font-weight&#58; bold;
&#125;

.opis &#123;
background-color&#58; #dddddd;
text-align&#58; right;
font-size&#58; 12px;
&#125;

.pole &#123;
background-color&#58; #eeeeee;
text-align&#58; center;
font-size&#58; 12px;
&#125;

.przyciski &#123;
background-color&#58; #cccccc;
text-align&#58; center;
font-size&#58; 16px;
font-weight&#58; bold;
&#125;

.opis &#123;
font-size&#58; 12px;
font-weight&#58; bold;
&#125;
-->
</style>




</head>

<body>

<?
if &#40;$_POST&#91;check&#93;=="1"&#41;
&#123;
?>

<form action="genpdf.php" method="post" target="_blank">
<input type="hidden" name="imie" value="<? echo $_POST&#91;imie&#93;; ?>">
<input type="hidden" name="nazwisko" value="<? echo $_POST&#91;nazwisko&#93;; ?>">
<input type="hidden" name="email" value="<? echo $_POST&#91;email&#93;; ?>">
<input type="hidden" name="telfax" value="<? echo $_POST&#91;telfax&#93;; ?>">
<input type="hidden" name="miasto" value="<? echo $_POST&#91;miasto&#93;; ?>">
<input type="hidden" name="tresc" value="<? echo $_POST&#91;tresc&#93;; ?>">
<input type="submit" value="Generuj PDF">
</form>

<form action="genhtml.php" method="post" target="_blank">
<input type="hidden" name="imie" value="<? echo $_POST&#91;imie&#93;; ?>">
<input type="hidden" name="nazwisko" value="<? echo $_POST&#91;nazwisko&#93;; ?>">
<input type="hidden" name="email" value="<? echo $_POST&#91;email&#93;; ?>">
<input type="hidden" name="telfax" value="<? echo $_POST&#91;telfax&#93;; ?>">
<input type="hidden" name="miasto" value="<? echo $_POST&#91;miasto&#93;; ?>">
<input type="hidden" name="tresc" value="<? echo $_POST&#91;tresc&#93;; ?>">
<input type="submit" value="Generuj HTML">
</form>


<script language="JavaScript">
config='toolbar=yes,location=no,directories=no,sta tus=no,menubar=yes,width=400,height=350'
config += 'scrollbars=no,resizable=no'
pop = window.open &#40;"","pop",config&#41;


pop.document.write&#40;'<html>'&#41;;
pop.document.write&#40;'<head>'&#41;;
pop.document.write&#40;'</head>'&#41;;
pop.document.write&#40;'<body bgcolor=#eeeeee>'&#41;;
pop.document.write&#40;'<table>'&#41;;
pop.document.write&#40;'<tr><td>Imi&#58;</td> <td><?echo $_POST&#91;imie&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'<tr><td>Nazwisko&#58;</td> <td><?echo $_POST&#91;nazwisko&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'<tr><td>Email&#58;</td> <td><?echo $_POST&#91;email&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'<tr><td>Telefon&#58;</td> <td><?echo $_POST&#91;telfax&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'<tr><td>Miasto&#58;</td> <td><?echo $_POST&#91;miasto&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'<tr><td>Tre&#182;</td><td><?echo $_POST&#91;tresc&#93; ?></td></tr>'&#41;;
pop.document.write&#40;'</table>'&#41;;
pop.document.write&#40;'</body>'&#41;;
pop.document.write&#40;'</html>'&#41;;
</script>

<?
&#125;
?>

<form action="index.php" method="post">

<p class="potw"><? echo $potwierdzenie; ?></p>

<table cellspacing="2" cellpadding="5" border="0">
<tr><td colspan="2" height="25" class="tytul">Formularz kontaktowy</td></tr>
<tr><td class="opis">Imi</td><td class="pole"><input type="text" name="imie" value="" size="35"></td></tr>
<tr><td class="opis">Nazwisko</td><td class="pole"><input type="text" name="nazwisko" value="" size="35"></td></tr>
<tr><td class="opis">E-mail</td><td class="pole"><input type="text" name="email" value="" size="35"></td></tr>
<tr><td class="opis">Telefon / Faks</td><td class="pole"><input type="text" name="telfax" value="" size="35"></td></tr>
<tr><td class="opis">Miasto</td><td class="pole"><input type="text" name="miasto" value="" size="35"></td></tr>
<tr><td colspan="2" class="tytul"></td></tr>
<tr><td width="100" class="opis" valign="top">Opisz co, na kiedy potrzebujesz przetumaczy</td>
<td class="pole"><textarea name="tresc" cols="30" rows="10"></textarea></td></tr>

<tr><td colspan="2" class="przyciski">
<input type="hidden" name="check" value="1">
<input type="submit" value="Wy&#182;lij"><input type="reset" value="Wyczy&#182;"></td></tr>

</table>

</form>

</body>
</html>

r-mi
25-02-06, 11:30
A nie lepiej zrobić po prostu oddzielny CSS do druku? W sumie po tym co napisałeś nie za bardzo wiadomo o co chodzi ;)


Zainteresuj się biblioteką fpdf
Nie ma nic gorszego od formatu PDF w internecie ;) unikaj jak tylko możesz, chyba że inaczej się nie da.

tomasz rakoczy
25-02-06, 11:32
Dlaczego to PDF jest niby taki zły w Internecie wg Ciebie?

krYsti
25-02-06, 11:40
Dzięki Tomek, znowu mnie wyprzedziłeś ;)


Nie ma nic gorszego od formatu PDF w internecie
Skąd taki wniosek? Ja bym powiedział, że unikać trzeba wszystkich formatów poza PDF. Ławo się go generuje, no i to PDF - masz zawsze dokładnie to, co chcesz. Bez cyrków z czcionką, czy niekompatybilnością (np. DOC).

r-mi
25-02-06, 12:10
http://www.useit.com/alertbox/20030714.html
http://www.useit.com/alertbox/9605.html

Ogólnie problem jest taki że PDF-y:
Wolno się ładują.
Nie dają się łatwo edytować.
Nie każdy ma czytnik.
Psują nawigację na stronie (szczególnie otwierane w nowych oknach a w popupach to już maksymalna masakra).

Drukowanie czegoś co może być szybko i sprawnie wydrukowane z użyciem styli za pomocą PDF-a mija się z celem. Właśnie do drukowania wymyślono odpowiednią funkcjonalność CSS.

Czasami fakt musimy drukować z dużą dokładnością lub coś czego CSS nie załatwi (np. jak ktoś chce wydrukować 10MB ebooka to równie dobrze sobie może ściągnąć / uruchomić AR), ale w innym wypadku to jak otwieranie słoika młotem pneumatycznym ;)

Np. na stronie rejestracyjnej neostrady jest formularz z danymi klienta - jakby to drukowali PDF-em to ludzie by non-stop im dzwonili na infolinię bo albo by sobie nie wydrukowali tych danych - albo by nie wiedzieli jak.


Skąd taki wniosek? Ja bym powiedział, że unikać trzeba wszystkich formatów poza PDF

"Najlepszę" są strony których webmasterzy myślą że im więcej niekompatybilnych na niej formatów - tym lepiej. Oferta handlowa w DOC, szczegółowa specyfikacja w PDF a formularz zamówienia w excelu. Do tego menu na jpegach bez altów i najlepiej jeszcze jakaś muzyczka i fajna animacja w applecie javy ;) Fakt PDF można ścierpieć - tego że ktoś przy zdrowych zmysłąch może umieścić w sieci dokument office czy open office w ogóle nie brałem pod uwagę bo to już pod zboczenie podchodzi ;) Tak ogólnie używanie jakichkolwiek zamkniętych/własnościowych formatów w sieci to nie najlepszy pomysł ;)

tomasz rakoczy
25-02-06, 12:41
Trudno się nie zgodzić z Twoją argumentacją, ale zależy co do czego.

Przytoczony przykład z formularzem do wypełniania w postaci PDFa do druku jest chybiony bo nie o to tym razem chodzi. Wyraźnie autor wątku chce aby po wprowadzeniu danych do bazy, mieć możliwość ich automatycznego wydrukowania. Jednocześnie podkreśla, że nie zależy mu na jakimś konkretnym formacie.

Jednak co do zastosowania samych PDFów to uważam, że twierdzenie jakoby nie każdy miał czytnik nie jest trafne.

Owszem może i nie każdy ma czytnik, ale ilość PDFów w sieci jest na tyle duża, że czytniki PDF to standardowo instalowane oprogramowanie w nowych komputerach.

Czytnik jest darmowy, format niezależny od platformy.

Koronnym, jak dla mnie, argumentem jest to, że PDF pozwala pokazać dokument dokładnie tak jak założył sobie to jego autor.

krYsti
25-02-06, 12:53
Ogólnie problem jest taki że PDF-y:
Wolno się ładują.
Nie dają się łatwo edytować.
Nie każdy ma czytnik.
Plik Worda również szybko się nie wczyta, a jeżeli chodzi o edycję, to myślę, że czasami własnie o to chodzi. Widzisz plik dokładnie taki, jak i autor chciał, żebyś widział. To chyba pozytowna opcja, szczególnie przy niezależności formatu od konkretnego systemu operacyjnego.

Owszem, w tym konkretnym przypadku najlepszym rozwiązaniem będzie wydruk oparty na CSS, jednak nie można odrzucać PDF-a jako formatu ogólnie dostępnego i używanego w Internecie.
Nie mogę też się zgodzić z argumentqacją, że mało kto ma czytnik. Różne komputery widziałem, przy różnych grzebałem. Częściej jest Acrobat Reader niż antywirus.

tomasz rakoczy
25-02-06, 13:29
Dorobiłem proste (bardziej w formie testu) generowanie pliku PDF za pomocą biblioteki FPDF (http://www.fpdf.org/), o której wspomniał piotrg.

http://wwww.trintlan.nazwa.pl/formularz/

Po wypełnieniu formularza pojawi się przycisk do generowania dokumentu. Jest też przycisk dla HTMLa :-)

r-mi
25-02-06, 14:48
Jasne, że nie można odżucać PDF jako ogólnie dostępnego formatu... DOC na WWW to ogólnie rzecz biorąc pomyłka całkowita. PDF do drukowania dokumentów które tego wymagają dobrze się nadaje, jednak to że liczba użytkowników mogących wydrukować stronę jest wyższa niż liczba userów mogących drukować PDF-y to fakt niezaprzeczalny (bo PDF to format zewnętrzny).

PDF do drukowania - OK, jednak gdy wyświetlamy go jako np. dodatek do strony (oferta handlowa, dane kontaktowe, itp) - to bardzo poważny błąd o którym można przeczytać bardzo wiele w publikacjach odnośnie web usability. Do czego dobrze użyć PDF? np do drukowania faktur, książek, itp. Wszędzie tam gdzie wygląd dokumentu i podział dokumentu na strony może mieć znaczenie przy jego ważności bądź interpretacji.


a jeżeli chodzi o edycję, to myślę, że czasami własnie o to chodzi. Widzisz plik dokładnie taki, jak i autor chciał, żebyś widział
:D tutaj już poleciałeś typowo microsoftowym modelem myślenia - "naszych dokumentów nie można edytować a systemu konfigurować, żeby sobie użytkownik krzywdy nie zrobił" ;) Jak ktoś nie będzie chciał wyedytować dokumentu - to po prostu tego nie zrobi. Poza tym jaki problem ściągnąć sobie acrobata-nie-readera?

Alarmus
25-02-06, 15:25
Może trochę wtrącę podając przykład.
W dość dużym banku jakim jest Inteligo wszystkie dokumenty są w formacie PDF, bez wyjątku, potwierdzenia przelewu, stan konta, historia konta itp i jakoś nie ma z tym problemu.
Format PDF jest na równi obowiązujący z DOC, o ile nie stał się już bardziej popularny.
Trzeba iść z postępem. :)

piotrg
25-02-06, 17:44
Moe troch wtrc podajc przykad.
W do duym banku jakim jest Inteligo wszystkie dokumenty s w formacie PDF, bez wyjtku, potwierdzenia przelewu, stan konta, historia konta itp i jako nie ma z tym problemu.
Format PDF jest na rwni obowizujcy z DOC, o ile nie sta si ju bardziej popularny.
Trzeba i z postpem. :)

Oj... nie mog si zgodzi z t tez. Dlaczego? Ano dlatego, e jak sobie wygeneruje PDF z PHP to wiem, e bdzie on wyglda tak samo pod Windowsem, Linuxem, MacOs czy na WindowsCE. Natomiast generujc dokumenty w formacie doc w pewnym sensie zmuszamy uytkownika do zakupu MS Office'a. I prosz nie pitoli, e jest darmowy Open Office - nie umie to otwiera poprawnie dokumentw z zaawansowanymi formatowaniami i koniec. Tak wic wyszo pdfw nad doc zostaa udowodniona i od teraz prosz nie ple herezji.

Nimitz
25-02-06, 17:49
Piotrek ale Alarmus nie mówi źle o pdf. Chyba, że ja źle widzę...

bm2hd
25-02-06, 20:42
Jednym słowem nie mam nic do dodania prcuje jak marzenie!!!! :brawo: Co mogę dodać zgadzam sie z tezą ze to własnie PDF powinien isc do przodu a cały soft bilego powinie przepaść w czeluściach a dla tych którzy korzystają z
MS XXX polecam soft-best.net i moze ddl2.com :!:

Alarmus
26-02-06, 10:09
Piotrek ale Alarmus nie mówi źle o pdf.Dokładnie. :)
PDF, format nie nowy, ale to galopująca przyszłość.

Beni0
07-06-08, 15:20
Po pierwsze witam jako nowy na tym forum.
Po 2 podpinam się pod wątek który nie jako dotyczy mojego problemu.

Interesuje mnie proste rozwiązanie które wysyłało by plik PDF z fakturą ProForma na maila użytkownika który złoży zamówienie przez formularz ze swoimi danymi i dostanie ją mailem. Jak to powinno dzialać i jak to widzicie.

Pozdrawiam serdecznie i dziękuję za odpowiedź

P.S. Jakieś gotowce ew skrypty mile widziane.