PHP/HTML Formular in PDF Umwandeln

Snake_one

Grünschnabel
Hallo liebe Community,
ich bin erst seit 2 Wochen in der PHP Welt dabei, da ich ein Praktikum mache und ein kleines Onlinedokumentationssystem entwickeln darf. Auf Basis von PHP und HTML.

Leider bin ich nun an einem Punkt an dem ich trotz Google nicht weiterkomme.
Ich habe das Formular fertig, die Grafikumgebung und kann es auch an eine MySQL Datenbank schicken. (war für mich schonmal gut das ich das in 1,5 Wochen hinzubekommen habe, inkl. Sprachen lernen).
Naja nun zum Eigentlichen Problem.
Wie kriege ich meine PHP Daten die im $_POST sind in HTMLdoc bzw dann in PDF.
Ich habe jetzt 1 ganzen Arbeitstag gegoogelt oder auch hier geguckt aber so wirklich hilft mir das nicht weiter, magels Erfahrung denke ich.
Kann mir jemand Helfen und einen Codeschnipsel bereitstellen oder Seiten mit ähnlichen Problemen zeigen die ich vllt übersehen habe Vielleicht gibt es ja auch andere Programme dafür, wäre egal hauptsache kostenlos und ich muss anschließend noch das PDF in ein Layout packen können :-(
Leider kann ich den Quellcode soweiter hier nicht Posten da mein Chef dann wohl recht sauer wird. Gehen wir einfach von einer neuen Seite aus die nur die Grundsyntax, die übergebenen Daten und die Verbindung zur Datenbank hat. Der folgende Codeschnipsel aus dem Forum hat mir nicht wirklich geholfen:mad:.

function topdf($filename, $options = "")
{
# Write the content type to the client...
header("Content-Type: application/pdf");
flush();

# Run HTMLDOC to provide the PDF file to the user...
passthru("usr/bin/htmldoc -t pdf12 --quiet --size a4 --bodyfont Arial --fontsize 8.0 --no-links --webpage '$filename'");
}

Vielleicht habt Ihr ja trotz meiner mangelnden Beschreibung eine Idee was mir fehlen könnte. Ich weiß das ich eine "topdf()" brauche sowie eine "makepdf()" aber wie ich sie vernünftig benutze ist mir leider noch nicht ganz klar.
Vielen Dank an alle
 
Hallo Snake_one

Ich weiß nicht ob sich dein Problem schon gelöst hat. (Thema ist als gelöst markiert).

Wenn ja, dann wäre es sicher nett, wenn du die Antwort für spätere Suchende posten könntest. (Wenn du den Code nicht posten kannst, dann villeicht ein Beispiel)

Falls nein:
Ich bin mir nicht sicher, ob ich dich richtig verstanden hab, aber im Prinzip willst du das Formular mit den Daten von $_POST (wieder) befüllen oder ?
Dies ist dann eigentlich sehr simpel.
Gib einfach mit PHP im HTML Formularfeld den POST Wert aus:

Code:
<inpu type="text" name="formularfeld" value="<?php echo $_POST['formularwert']; ?>" />

Nur als Beispiel.

Grüße Simon
 
Hallo nochmal,
das Problem hat sich gelöst, aber ich habe mich denke ich falsch ausgedrückt.
Mir ging es darum das ich nicht wusste wie ich aus einem Formular ein PDF erzeugen kann, trotz diverser Studien im gesammten Internet.

Tja zum Lösungsansatz kann ich leider nicht viel sagen, ausser das ich den Schritt den ich eigentlich vermeiden wollte (Einen meiner Kollegen um Hilfe bitten) gemacht habe und er mir jetzt innerhalb von 20 min den Quellcode soweit geschierben hat das ich nurnoch meinen Text abspeichern muss. Diesen Quellcode kann ich leider nicht hierher kopieren und da das ganze noch weitergeht (MySQL integriert, sehr viele Variablen) denke ich, das wenn ich Ausschnitte zeigen würde es niemand versteht, dem es helfen könnte.
Ich würde eher Voschlagen den ganzen Eintrag zu löschen um nicht für mehr Verwirrung zu sorgen, bei Leuten mit dem gleichen Problem.

Trotzdem Danke
Snake
 
[...]ausser das ich den Schritt den ich eigentlich vermeiden wollte (Einen meiner Kollegen um Hilfe bitten) gemacht habe und er mir jetzt innerhalb von 20 min den Quellcode soweit geschierben hat das ich nurnoch meinen Text abspeichern muss. [...]

Scheinst ja nen schlechtes Arbeitsverhältnis zu haben... (Falls Kollege so gemeint war).
Also ich kenn das so das man als erstes fragt bevor man sich selbst auf die Suche begibt... Ist doch sonst verschwendete Zeit, oder nicht?

Dennoch haben die Leser mit dem selben Problem immernoch keine Lösung!
Aber anscheinend bist du nicht bereit Hilfestellung zu leisten - obwohl das ja eigentlich der Sinn der Community ist - oder meinst du nicht?

Andere geben sich hier schließlich viel Mühe und opfern Zeit um dir zu helfen - finde ich nicht so ganz fair das jetz so zu beenden...

lg
 
So, ich habe den Quellcode jetzt mal reinkopiert und die Stellen die meinen Chef stören würden rausgeschmissen.
Sollte das jemandem erstnsthaft weiterhelfen bitte einfach nen Feedback dalassen!!

PHP:
<?php
	$pdfsuccess=false;

  //Löschen temporärer Dateien in tempdirpdf
	function deltemp($dir)
	{

		//Alle Dateien im Ordner $tempdir_pdfrel löschen
		if($htmlhandle = opendir($dir))
		{
			while ($dirfile = readdir($htmlhandle))
			{
			    $delpath=$dir . "/" .$dirfile;
			    if($dirfile!="." && $dirfile!=".."&& is_file($delpath))
			    {
			    	$delsuccess=unlink($delpath);
			    }
			}
		}
		else
		{
		  echo ("Kann temporäre Dateien nicht löschen!");
		}
	}
	
	//PDF mittels Tool htmldoc im safe_mode_exec_dir erzeugen
	function topdf($infiles,$outfilename)
	{
	  $randlinkspdf="30mm";

		$logopath='Pfadangabe';
	  $outfile='Pfadangabe' . $outfilename;
    $tempdir_pdfrel_abs='Pfadangabe';

    //Test, ob Zugriff auf htmldoc besteht 
		ob_start();
		passthru("htmldoc");
		$result1=ob_get_contents();
		ob_end_clean();
			
		//wenn kein result zurückgekommen ist
		if($result1!=false)
		{
			
			ob_start();
			
			passthru(
			"htmldoc --logoimage $logopath --header .l. --footer d./ --left 20mm --right 20mm --top 0mm --bottom 5mm --numbered --continuous --verbose --no-title --no-toc --headingfont Arial --textfont Arial -t pdf --path $tempdir_pdfrel_abs --outfile $outfile $infiles ");
		  
      $result2=ob_get_contents();
			ob_end_clean();

			
			//wenn kein result zurückgekommen ist
			if($result2==false)
			{ 
				return(true);
			}
			else
			{
			  return(false); 
			  
			}
		
		}
		else
		{
      	echo ("Fehler: " . $result1);
    }
	}
         //Das übertragen Funktioniert noch nicht 100%
  	$pdftitel=$_POST["Titel"];
  	$filename=$_POST["Titel"].'.pdf';
	  $htmlpath="temp/";
	  deltemp($htmlpath);

		//pdfoutdir öffnen
		if ($dirhandle = opendir('pdfs'))
		{
          $page="htmldatei.html";
	    		$htmlpathfile=$htmlpath . $page;
					
          $htmltext="
          <h1>Ich bin Überschrift Eins</h1>
          <table width='600'>
                    <tr>
                      <td>
                        $_POST('nachricht')
                      </td>
                    </tr>
          </table>
          ";
          
          
          if($handle1= fopen($htmlpathfile,"wb"))
	    		{
				    fwrite($handle1,$htmltext);
				    fclose($handle1); 
	    		}
	    		else
	    		{
	    		  	echo("HTML-Generierung fehlgeschlagen!");
	    		}
				  
	    		
	    		//PDF-Generierung starten	    		  
	    		$pdfsuccess = topdf($page,$filename);

		}
		closedir($dirhandle);
		
		if($pdfsuccess)
		{
			  echo("<center>Alles OK, erzeugte PDF-Datei: ./pdfs/Test.pdf'</center>");
		}
		else
		{
		 	echo("<center>Fehler beim Generieren</center>");
    }              
		

?>

Achja und zu meinem Vorredner, ich mache lediglich ein Praktikum in dieser Firma, das Arbeitsverhältsnis ist gut, doch Wissen sollte man den größten Anteil schon selber, wenn ich sowas nachfrage heißt es hinterher das mir das meine Kollegen gemacht haben. Das möchte ich vermeiden, vielleicht möchte ich hier ja demnächt anfangen!

Viel Spaß damit
SnaKe_one
 
Aber ich meine man kann ja Fragen. manchmal braucht man einen kleinen Anstoss in die richtige Richtung. Code geschrieben bekommen bringt einem ja selber nichts, solange man etwas lernen will und nicht einfach nur seine Aufgaben erledigt haben will.
Ist nur ein allgemeiner Kommentar und nichts gegen dich
 
Ja, das sehe ich auch genauso und ist auch völlig Richtig!
Nur ist es etwas schwierig für mich weil ich schon einiges gefragt habe und ich hatte den Kollegen auch nicht gebeten mir den Code zu schreiben sondern auch nur um Hilferstellung. Da er momentan ca. 400KM weit weg sitzt und auch genug zu tun hat, hat er das wohl getan...
Weils schneller geht als immer neue Fragen zu beantworten.

In diesem Sinne einen schönen Tag noch!
 

Neue Beiträge

Zurück