Briefbogen

mille

Erfahrenes Mitglied
Hallo!

Ich erselle gerade eine Datenbank mit Frontend.
Dieses soll auch die Möglicheit gebieten Daten aus der DB auszulesen und in einen Briefbogen zu schreiben.

Habt ihr eine Idee wie ich das regeln kann?
Erst wollte ich ein einfaches html erstellen, das quasi das Layout eines Briefes bekommt. Allerdings macht sich das blöd, da beim ausdrucken dessen immer der Pfad auf dem Blatt steht (ganz unten). Bekommt man den weg?

Dann habe ich mir überlegt, das ich die Daten in ein Worddokumen schreiben könnte. Aber gibt es eine Klasse, die eine Verarbeitung von doc-Dateien ermöglicht? Mitplatzhaltern fuer entsprechende werte?

Auch kam ich auf die Idee das ganze mit FPDF zu realisieren, aber bei FPDF muss man sehr genau angeben, wo sich was zu befinden hat. Das ist ziemlich schwierig, da man alles genau ausmessen müsste. Aber vielleicht habt ihr schoneinmal so etwas erstellt?

Der Aufbau des Briefbogens sollte der gängigen Norm entsprechen.
Sprich oben links die Adresse des empfängers. Rechts das Datum mit Ort.
Dann ein paar Freizeilen gefolgt vom Betreff und weiteren Leerzeilen. Darauf folgt dann der Text mit Abschiedsformel "Mit freundlichen Grüßen"... Ich denke ihr wisst wie so etwas aussehen soll :-).

Weiss jemand Rat?


MfG
Basti
 
Hi,

um in PDF schreiben zu können, muss die PDF-LIB installiert oder aktiv sein.
http://www.php.net/manual/de/ref.pdf.php
http://www.pdflib.com/products/pdflib/
Bekannt ist dir ja schon
http://www.fpdf.org/


Um in Word direkt zu schreiben, musst du Word ansprechen über
http://www.php.net/manual/de/class.com.php


Wenn es um den Ausdruck von HTML geht, kann man mit javascript die URL angabe unterdrücken. Bei dem Ausdruck von HTML musst du wie bei allen anderen Möglichkeiten ebenfalls die Masse des Blattes berücksichtigen und auch die Positionierung der zu druckenden Bereiche.


Bei manchen Druckermenüs, gibt es aber auch die Möglichkeit, das drucken der URL auszublenden. Wenn nicht da, dann im Browser ;)
 
Ich glaube dann erscheint mir die Moeglichkeit das mittels PDF zu lösen am besten!
Nun würde mich interessieren, ob hier schoneinmal jemand einen Briefbogen mittels PHP und PDF erstellt hat? Denn das anordnen der einzelnen Textzellen ist ja doch relativ zeitintensiv - und warum das Rad neu erfinden :-)
 
Weis nicht, ob das mit PDF die einfachste Lösung ist. Also ich hatte mal ein Anmeldeformuar, das online direkt zu erstellen war, in der Fertigung. Das ist schon in Teilen nervend. Du musst bei PDF relativ viel berücksichtigen.

Die Frage nach der Alternaitve wäre mit HTML Ausgabe. Hatte ich zwar noch nicht selbst zu erledigen, wobei ich mir allerdings das wesentlich einfacher vorstelle.

Zumal in Verbindung mit CSS (Gestaltung des Briefbogen) viel getan werden kann.

Was die Einteilung bzgl. CSS und Briefformat betrifft, helfen dir auch die Einheiten von CSS weiter: http://www.css4you.de/einheiten.html

Du musst lediglich Texte, welche über mehrere Seiten gehen berücksichtigen ;)
 
Das Problem bei einer HTML-Ausgabe ist, dass sie zwar im Gegensatz zu einer PDF-Ausgabe wahrscheinlich weit aus einfacher zu realisieren ist, jedoch aufgrund der unterschiedlichen Browser kein einheitliches Bild gewährleistet. Wenn dies aber nicht vorrangig ist, kann HTML tatsächlich eine Alternative sein.

Die vom Browser eingefügten Kopf- und Fußzeilen können übrigens bei den meisten Browsern einfach entfernt werden.
 
Hallo.

Ich habe eine angemessene Lösung gefunden. Hoffe ich!
Es sollte aber erwähnt werden, das diese Lösung nicht für das WEB geeignet ist. Bei meiner "seite" handelt es sich mehr um ein Frontend in HTML und ein Backend in PHP um eine Datenbank abzufragen. Alles läuft also im Netzwerk.
Die folgende Lösung ist von PHP.net kopiert. Ich habe sie getestet. sie ganz gut! Entsprechende Anpassungen muss jeder selbst vornehmen.

Wieso schreibe ich das? Falls jemand beim Suchen diesen Thread findet, hat er eine passende Lösung parat :-)

PHP:
<?php
$dataText = "";

// open the file
if(!($fp= fopen ("C:\wwwroot\Projekte\Stura\Brief.rtf", "r"))) die ("Can't open");
$dataText = fread($fp, 2000000);
fclose ($fp);

// replace the template fields
$dataText = str_replace ("||Nachname||","mein Nachname ist irrelevant :D", $dataText);
$dataText = str_replace ("||Vorname||","Sebastian", $dataText);

// save the file as an rtf
$timeStamp = time();
$saveFile = "C:/wwwroot/Projekte/Stura/".$timeStamp."-invoice-".$customerIDValue.".rtf";
if(!($fq= fopen ($saveFile, "w+"))) die ("Can't open");
fwrite ($fq, $dataText);
fclose ($fq);

// initialize the word components
$word = new COM("word.application") or die("Unable to instantiate Word");

print "Loaded word version ($word->Version)\n";
$word->visible = true;
$word->Documents->Add();

// open the file
$word->Documents->Open("$saveFile");

// output the file to the default printer
$word->ActiveDocument->PrintOut(2);

// shutdown word
$word->Quit();
?>


Alles läuft also über Rich Text Format Dateien und Microsoft Word. Sicherlich kann man mit COM noch andere Module ansteuern (speziell bei Linux ja wichtig), aber ich kann mich (ich hoffe doch!) auf einer Windowsplattform auslassen :-).

MfG
Basti

PS: Falls sich Änderungen ergeben (zB kein Windows als Plattform) oder ich merke, das die Lösung mit RTF doch nicht die beste ist, werde ich mich hier wieder auslassen.
Danke ersteinmal für eure Hilfe!
 
saila hat gesagt.:
Hi,

um in PDF schreiben zu können, muss die PDF-LIB installiert oder aktiv sein.
http://www.php.net/manual/de/ref.pdf.php
http://www.pdflib.com/products/pdflib/
Bekannt ist dir ja schon
http://www.fpdf.org/


Um in Word direkt zu schreiben, musst du Word ansprechen über
http://www.php.net/manual/de/class.com.php


Wenn es um den Ausdruck von HTML geht, kann man mit javascript die URL angabe unterdrücken. Bei dem Ausdruck von HTML musst du wie bei allen anderen Möglichkeiten ebenfalls die Masse des Blattes berücksichtigen und auch die Positionierung der zu druckenden Bereiche.


Bei manchen Druckermenüs, gibt es aber auch die Möglichkeit, das drucken der URL auszublenden. Wenn nicht da, dann im Browser ;)


Also ich hab diese Word Befehle mal versucht für ein Beispiel aber bei mir bringt er immer beim aufruf nen Fehler "Apache Server hat einen Fehler entdeckt und muss geschlossen werden". Benötigt man noch irgendwas dazu (dll?) oder muss man irgendwas eventuell noch einstellen ?

EDIT: Testhalber hab ich das Beispiel mal auf meinen Webserver geladen (vorher lokal). Diemsal bekomm ich zwar keine eigenartige Windows-Fehlermeldung aber einen anderen

Fatal error: Cannot instantiate non-existent class: com in /usr/www/users/msbcl/word_test.php on line 3

PHP:
<?
// Word starten
$word = new COM("word.application") or die("Konnte Word nicht instantiieren");
print "Word geladen, Version {$word->Version}\n";

//Fenster anzeigen
$word->Visible = 1;

//ein leeres Dokument öffnen
$word->Documents->Add();

//irgendetwas tun
$word->Selection->TypeText("Dies ist ein Test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//Word schließen
$word->Quit();


//Das Objekt freigeben
$word->Release();
$word = null; 
?>
 
Zuletzt bearbeitet:
Hi!

Willst du einen Briefbogen als PDF erstellen oder einen Brief?

Das sind zwei grundverschiedene Dinge. Du kannst zum Beispiel einen Briefbogen lokal auf deinem Rechner als PDF erstellen (Word mit PDF-Drucker, OpenOffice, Acrobat...) und ihn dann als Vorlage für die zu generierenden PDF-Briefe verwenden.
Templates kannst du in FPDF mit FPDI verwenden.

Ich habe damit schon einmal eine komplette Rechnungsgenerierung erstellt, das ist über ein paar Umwege gar nicht so schwer.

Mamphil
 
Zurück