Alexander: Geschäftsbriefe in HTML erstellen und drucken?? (mit PHP/MySQL)

Hallo,

habe folgendes Problem.

Es besteht eine Access Datenbank mit Word Serienbriefen. Dieses Komplette System wird durch ein PHP/MySQL System ersetzt.

Und jetzt meine Frage:
Wie kann man die Word-Serienbriefe unter PHP ausfüllen und drucken???

Hatte mir schon sowas gedacht: in HTML per Hand umbauen und dann per PHP ausfüllen und per Javascript drucken. Da gibt es dann natürlich das Problem mit den nich veränderbaren Seitenrändern (von Javascript aus) und es ist eine ziemliche Arbeit.

Also, wenn einer einen guten Tipp hat, bitte postet ihn!

Danke!!

  1. Hallo Alexander,

    Wie kann man die Word-Serienbriefe unter PHP ausfüllen und drucken???

    Wenn es unbedingt Word-Serienbriefe sein müssen, kannst Du Word über COM ansprechen:
    http://www.php.net/manual/en/ref.com.php
    http://www.phpbuilder.net/columns/alain20001003.php3

    Hatte mir schon sowas gedacht: in HTML per Hand umbauen und dann per PHP ausfüllen und per Javascript drucken. Da gibt es dann natürlich das Problem mit den nich veränderbaren Seitenrändern (von Javascript aus) und es ist eine ziemliche Arbeit.

    Das geht natürlich auch. Da es ja eine Intranet-Anwendung ist, und Du den Browser festlegen kannst, sollte es eigentlich kein Problem sein, mit CSS ein vernünftiges Drucklayout hinzukriegen. Ich würde diesen Weg empfehlen, die COM-Programmierung kann auch recht umständlich sein, vor allem wenn Du keine große Erfahrung mit VBA hast.

    Eine andere Möglichkeit wäre, aus PHP heraus pdfs zu erzeugen:
    http://www.php.net/manual/en/ref.pdf.php

    Viele Grüße
    Stephan

    1. Eine andere Möglichkeit wäre, aus PHP heraus pdfs zu erzeugen:
      http://www.php.net/manual/en/ref.pdf.php

      Kann ich denn in einer vorgefertigten PDF Datei Texte ändern oder Formulare ausfüllen??

      1. Hallo Alexander,

        Kann ich denn in einer vorgefertigten PDF Datei Texte ändern oder Formulare ausfüllen??

        Nein, kannst Du soweit ich weiß leider nicht. Du könntest Dir aber einfach ein TIFF mit dem Briefkopf usw. machen, und Formulardateien (z.B. csv oder php-includes), wo die Felder und ihre Position im PDF angegeben sind, und dann mit einer Funktion jeweils das PDF erzeugen.

        Viele Grüße
        Stephan

        1. Etwas kompliziert!

          Wie ist das denn, wenn ich die Dateien alle fertig mache und dann auf der Druckseite einen Button mache zum drucken??

          Die Frage bleint bloss: Wie kann ich dann Kopf und Fusszeilen machen, bzw. die Seitenränder/Kop-Fusszeile ändern, ohne dass es der Benutzer jedesmal über "Seite einrichten" machen muss!

          1. Hallo Alexander,

            Die Frage bleint bloss: Wie kann ich dann Kopf und Fusszeilen machen, bzw. die Seitenränder/Kop-Fusszeile ändern, ohne dass es der Benutzer jedesmal über "Seite einrichten" machen muss!

            Ich nehme an die Frage bezieht sich auf die Lösung per HTML. Da soweit ich sehe im Moment leider kein Browser die @page Eigenschaften in CSS2 unterstützt, kannst Du nur eine einheitliche Seitengröße und Kopf und Fußzeile festlegen. Die kannst Du dann zumindest mit dem IE einmal auf allen Computern einstellen, zumindest bei mir sind die Einstellungen beim nächsten Aufruf des IE noch genauso da.
            Ansonsten: warten auf einen Browser mit CSS2-Unterstützung :-(.

            Viele Grüße
            Stephan

      2. Hallo Alexander,

        Kann ich denn in einer vorgefertigten PDF Datei Texte ändern oder Formulare ausfüllen??

        Nachtrag:
        mit der Funktion "pdf_open_pdi" kannst Du bestehende Dokumente öffnen, pdi ist allerdings eine Zusatzbibliothek zur pdflib, und ich weiß, wie gut das modifizieren hinhaut.

        Viele Grüße
        Stephan

      3. Eine andere Möglichkeit wäre, aus PHP heraus pdfs zu erzeugen:
        http://www.php.net/manual/en/ref.pdf.php

        Kann ich denn in einer vorgefertigten PDF Datei Texte ändern oder Formulare ausfüllen??

        Ja, das müsste gehen. (Ich habe es schon mal erlebt). Dann kann man im REader Texte in vorher definierte Felder eintragen, die dann in das PDF reingerendert werden und druckbar sind.

        Beispiel wäre das (alte) Kontoeröffnungsformular der 1822direkt-Bank, das leider nicht mehr auf deren Server ist. Ich habe es aber gerade im Cache-Ordner gefunden und auf meinen Server geladen:

        http://www.xnot.net/kontogesamt.pdf

        Gruß,
        Arne.

        PS: Wie man so etwas erzeugt, weiß ich leider nicht...

  2. Hallo, Alexander,

    Vielleicht hilft dir mein Tipp weiter (verstehe nicht ganz, was du mit Word Serienbriefen meinst):
    Vor einigen Wochen habe ich auch in Ermangelung eines anständigen Office-Programmes (MS Office - nein danke danke) und dem Unwillen, hunderte Megabyte StarOffice o.ä. herunterzuladen, Serienbriefe mit HTML, CSS, PHP und MySQL gelöst.
    Die Adressendatenbank lag als MySQL-Db. vor. Per PHP wurden die einzelnen individuellen Seiten generiert und mit CSS formatiert. Das bedeutete: margin und padding der Seite (html, body) auf Null, die einzelnen Seiten habe ich durch page-break-after getrennt.
    Die Seitenränder habe ich anschließend manuell im Browser festgelegt, mit dem ich auch dann gedruckt habe. Ich habe erst gar nicht versucht, mit @page zu arbeiten.
    Eigentlich dürfte das Drucken in jedem modernen Browser (hier getestet: Opera 6.x, IE 6.0, Mozilla 1 RCx), der page-break-after und die grundlegenden CSS-Regeln versteht, möglich sein, jedoch hatte ich Mozilla gewählt, weil ich dort Kopf- und Fußzeilen am besten ausschalten konnte (URL, Seitentitel usw. sollten natürlich auf einem Serienbrief nicht drauf sein ;).
    Die Optionen zum Ausschalten der Kopf- und Fußzeilen sind auch in den anderen Browsern vorhanden, aber afair hatte ich es ausprobiert und nur im Mozilla Erfolge erzielt, oder ich unterlag meiner Erfahrung, dass Mozilla am meisten von CSS versteht; zumindest dass er die Seite so rendert, wie ich es wollte. Denn den kompletten Serienbrief hatte ich auch extensiv mit CSS formatiert.
    Afaik kann man die Rahmen- und Kopf/Fußzeileneinstellungen im Mozilla in einer Konfigurationsdatei festlegen, sodass sie gespeichert bleiben (die Einstellungen wird ansonsten scheinbar immer wieder zurückgesetzt). Das würde das Problem des Halbautomatischen Druckens lösen. Afair ist die Eigenschaft in der Konfig.-Datei recht eindeutig ausgewiesen. Ich finde es gerade nicht, trotz intensivem googlen, muss wohl in die Datei prefs.js. Vielleicht habe ich auch nur davon geträumt (kann durchaus sein). Entschuldige, vielleicht wissen unsere Mozilla-Freaks mehr.
    Ein Intranet mit gleichen IEs zu bestücken ist wohl schwer (Konfiuration in der Systemregistrierung), aber im Opera dürfte man bspw. die Druckeinstellungen auch einfach in der operaX.ini festlegen können. Ini auf den Rechner kopieren und schon funktioniert es.
    Im Endeffekt habe ich also die 60 Seiten, die das Skript aus den Daten der Datenbank gezaubert hat, gedruckt. Darauf, dass alles mit Open Source-Software und freien Technologien ablieft, bin ich stolz.... Not macht erfinderisch. :) Ist also alles ganz ohne Word und mit einem ordinärem Browser möglich.

    HTH,
    Mathias