PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mittels php eine pdf datei erzeugen?



Stormsam
01-08-2004, 16:36
Hi@all,

ich würde gerne das man über ein Formular eine PDF-Datei erzeugen könnte.
Also man gibt z.b. seinen Namen an klickt auf senden und dann öffnet sich eine PDF-Datei mit dem Namen (und noch weiterem Text!).

Am Ende würd ich das dann gerne so machen, das die PDF-Datei per eMail versendet wird.

ist derartiges sehr aufwändig oder gibt es soetwas schon fertig mit netz? (per google habe ich leider nicht viel darüber finden können)

mfg
stormsam

Gaert
01-08-2004, 17:12
Hallo,

bitte auch die Forumssuche benutzen:
http://mrunix.de/forums/showthread.php?t=35200

Gruß,

Gaert

Stormsam
02-08-2004, 07:41
hi!
danke das klappt schon mal ganz gut.

Habe jetzt nur noch ein Problem, wie könnte ich das per Anhang nun verschicken lassen?
mit PHPMailer und AddAttachment("./pdf/eine_pdf_datei.pdf"); würde das ja gehen, nur müßte er dann die php Datei zwischenspeichern.
Wäre das irgendwie machbar, das er die pdf Datei nicht gleich aufruft, sondern ersteinmal abspeichert?

Oder könnte man es noch anders lösen?

mfg
stormsam

Gaert
02-08-2004, 10:13
Sicher ist das machbar... schau dir mal die Ouptut Buffers an.
http://de3.php.net/manual/de/ref.outcontrol.php

Gruß,

Gaert

Stormsam
02-08-2004, 11:01
hi,

danke für den tipp ... versuche das schon die ganze zeit so zu lösen das er es ersteinmal auf dem server speichert - allerdings brauch man da die kostenpflichtigen pdflibs oder man hat ein riesen wasserzeichen dirn ;)

Dies wär vielleicht die Lösung, allerdings versteh ich noch nicht ganz wie das nun funktioniert.
Im Netz findet man nur relativ wenig darüber.

Wo genau speichert er es nun ab .. im puffer ... aber wie kann ich darauf "zugreifen"
Um es per email zu versenden brauche ich irgendwie eine url:
AddAttachment("./pdf/eine_pdf_datei.pdf");


Und wie genau speichere ich etwas in den puffer?
Wird einfach alles zwischen ob_start(); und ob_end_flush(); gespeichert?
ob_start();

Kann man in Cookies nicht nur "text" speichern, nicht ganze pdf datein?

hoffe kannst mir da ein wenig helfen ;)
mfg
stormsam

elrond
03-08-2004, 06:54
Eine gute und kostenfrei Variante zur Erzeugung ist der Umweg über latex. Ich erzeuge alle meine Reports indem ich mit PHP latex-Dateien schreibe und dann pdflatex drüberjage.

Stormsam
03-08-2004, 15:42
hi!
latex scheint die Lösung zu sein :)
nur hab ich da n problem.
Habe debian (root-server) und kann es leider nicht (wie es in ätlichen howto's steht) von cd aus installieren.

Wenn ich nach einem download suche, gibt es irgendwie hundert verschiedene latex.
Kann mir jemand vielleicht eins empfehlen - was ich kurz downloaden und installierne könnte?

mfg
stormsma

elrond
03-08-2004, 15:49
ich würde mir einfach nur ein pdflatex greifen...

mehr brauchst du ertmal nicht, da der latexcode einfach in textfiles geschreiben wird.

bei mir sieht der ganze aufruf so aus:


$fp = fopen("pdf/".$texfile, "w");
fwrite($fp, str_replace(chr(13),"",$tex));
@fclose($fp);
$execstr="cd pdf/;"."/usr/bin/pdflatex ".$texfile." >".$texfile.".err";
passthru($execstr,$errcode);



also einfach file schreiben und pdflatex drüberjagen...

Stormsam
03-08-2004, 16:12
aber dafür muss pdflatex ja ersteinmal funktionierne :)

habe jetzt folgendes installieren lassen (mit apt-get install)


The following NEW packages will be installed:
libkpathsea3 libxaw7 tetex-base tetex-bin

doch beim testen von pdflatex kommt:


# /usr/bin/pdflatex test1.tex
This is pdfTeX, Version 3.14159-1.00a-pretest-20011114-ojmw (Web2C 7.3.7)
I can't find the format file `pdflatex.fmt'!

daher wollt ich latex "sauber" installieren, indem ich es irgendwo downloaden kann.

mfg
stormsam

elrond
04-08-2004, 07:34
da kann ich dir wohl nicht weiterhelfen... ich hab's einfach von der cd genommen... :cool:

bei mir finde ich die Datei unter /var/lib/texmf/web2c/pdflatex.fmt

soltest du die nicht finden schick mir ne pm mit deiner Mailadresse...

hier ein doc, was ggf. weiterhelfen könnte:
Doc (http://elib.uni-stuttgart.de/opus/doku/pdftex-a.pdf)

viel Erfolg!

Gaert
04-08-2004, 10:16
Hallo Stormsam!



<?php
ob_start()
//Hier kommt der PDF Output
$content = ob_get_contents();
ob_end_clean();
$fh = fopen("datei.pdf","w+");
fwrite($fh,$content);
fclose($fh);
?>

Stormsam
07-08-2004, 16:28
@Gaert

funktioniert wunderbar !!
danke :)