Achim Schrepfer: Drucken aus dem Browser heraus

Hallo Forum,

ich arbeite zur Zeit an einer kleinen Intranetanwendung für unseren Eigenbedarf. Die Anwendung ist in PHP geschrieben und verwaltet Kunden, Mitarbeiter und Aufträge. Alle Daten dazu werden in einer MySQL-Datenbank abgelegt.

Nun möchte ich einige Abläufe mit der Anwendung automatisieren. Dazu soll der Benutzer u.a. auch Dokumente wie Angebote und Rechnungen drucken können.

Nun ist meine Frage, welche Wege es gibt ein dynamisch erzeugtes Dokument wie z.B. ein Angebot vernünftig drucken zu können. Ich habe schon mal ein wenig mit Stylesheets rumexperimentiert, bin aber spätestens bei den erzwungenen Seitenumbrüchen gescheitert.

Gibt es vielleicht Möglichkeiten, Word-Dokumente anhand von Vorlagen zu erzeugen oder die Daten für das Dokument halbwegs komfortabel aus der Datenbank in das Word-Dokument zu holen (z.B. via MyODBC)?

Ich bin für jeden Tipp dankbar!

Viele Grüsse
 Achim Schrepfer

  1. Hallo Achim

    Gibt es vielleicht Möglichkeiten, Word-Dokumente anhand von Vorlagen zu erzeugen oder die Daten für das Dokument halbwegs komfortabel aus der Datenbank in das Word-Dokument zu holen (z.B. via MyODBC)?

    Worum verwendest du nicht pdf? Das wird von php unterstützt.

    Siehe hier http://php3-forum.de/pdf.htm

    Viele Grüße

    Antje

    1. Hi Antje,

      Worum verwendest du nicht pdf? Das wird von php unterstützt.

      Dorum :-): Wenn ich PDF verwende ist es schwierig eine Druckvorlage zu gestalten. Mit der HTML-Lösung lässt sich eine Druckvorlage recht leicht realisieren, mit Word auch. Aber PDF-Dateien werden in diesem Fall voll durch PHP erzeugt und das Aussehen der Seite ist nur durch das Programm selbst beeinflussbar.

      Aber wenn ich gar keine andere Lösung finde, werde ich wohl PDF verwenden.

      Siehe hier http://php3-forum.de/pdf.htm

      Danke für den Link. Die Site ist schon gebookmarked.

      Viele Grüße
       Achim Schrepfer

  2. Hi Achim!

    Wie wärs denn, wenn Du die Sachen direkt im Browser ausdruckst? Bin ich gerade dran, Du erzeugst mit einem CGI Skript ein HTML Dokument, welches Du nach Herzenslust formatieren kannst, dann oben einen kl. Javascript Befehl print() und Du kannst direkt drucken!
    Gruß
    Alex
    PS: Aber wie das mit nem Word Dokument geht, würd mich auch interessieren! Wenn man das mit PDF macht, muß man sich dann extra den Acrobat dafür kaufen?

    Hallo Forum,

    ich arbeite zur Zeit an einer kleinen Intranetanwendung für unseren Eigenbedarf. Die Anwendung ist in PHP geschrieben und verwaltet Kunden, Mitarbeiter und Aufträge. Alle Daten dazu werden in einer MySQL-Datenbank abgelegt.

    Nun möchte ich einige Abläufe mit der Anwendung automatisieren. Dazu soll der Benutzer u.a. auch Dokumente wie Angebote und Rechnungen drucken können.

    Nun ist meine Frage, welche Wege es gibt ein dynamisch erzeugtes Dokument wie z.B. ein Angebot vernünftig drucken zu können. Ich habe schon mal ein wenig mit Stylesheets rumexperimentiert, bin aber spätestens bei den erzwungenen Seitenumbrüchen gescheitert.

    Gibt es vielleicht Möglichkeiten, Word-Dokumente anhand von Vorlagen zu erzeugen oder die Daten für das Dokument halbwegs komfortabel aus der Datenbank in das Word-Dokument zu holen (z.B. via MyODBC)?

    Ich bin für jeden Tipp dankbar!

    Viele Grüsse
    Achim Schrepfer

    1. Hallo Alex,

      lies Dir bitte _jetzt_ http://learn.to/quote/ (deutschsprachig) und
      </selfaktuell/forum/faq/forumsfaq_2.htm#naq4> durch.
      Ich habe Dich schon mehrfach darauf hingewiesen und so langsam ist
      es sehr störend, wenn Du jedesmal das komplette Vorgängerposting
      zitierst.
      So schwer ist es wirklich nicht, also halte Dich bitteschön an die
      Regeln dieses Forums!

      Wie wärs denn, wenn Du die Sachen direkt im Browser ausdruckst? Bin ich gerade dran, Du erzeugst mit einem CGI Skript ein HTML Dokument, welches Du nach Herzenslust formatieren kannst, dann oben einen kl. Javascript Befehl print() und Du kannst direkt drucken!

      gut, dann sage mir bitteschön die Lösung für das folgende Problem,
      welches Achim bereits nannte:

      Ich habe schon mal ein wenig mit Stylesheets rumexperimentiert, bin aber spätestens bei den erzwungenen Seitenumbrüchen gescheitert.

      Ich kenne die Lösung nicht, Du aber scheinbar schon, also verrate
      sie uns bitte.

      PS: Aber wie das mit nem Word Dokument geht, würd mich auch interessieren!

      Es sind wohl gegenwärtig Sachen in der Entwicklung, um MS Office-
      Dokumente maschinell erzeugen zu können, fertige Lösungen gibt es
      imho jedoch nicht.

      Wenn man das mit PDF macht, muß man sich dann extra den Acrobat dafür kaufen?

      "Wer lesen kann, ist klar im Vorteil!"
      In <?m=131127&t=25141> hat Antje einen Link gepostet, der u.a.
      diese Frage beantwortet. Wie soll es überhaupt funktionieren, auf
      einem UNIX-Server, wo mit PHP PDF-Dateien erzeugt werden, Adobe
      Acrobat zu installieren?

      Viele Grüße aus Dresden,
      Stefan Einspender
      der hofft, dass auch alexkureck@hotmail.com endlich versteht, was
      mit "Learn to quote" gemeint ist ... :-/

      1. Hallo Stefan!

        Sorry wenn das hier so stört, werde ich mir in Zukunft mehr Mühe geben, meine Threads zu "gestalten"!

        Ich kenne die Lösung nicht, Du aber scheinbar schon, also verrate
        sie uns bitte.

        Ich kenn mich bestimwt nicht so gut aus wie Ihr, aber ich hab mir halt gedacht, wenn die Daten in Datenbank Format vorliegen, kann man doch mit CGi Scripten diese verwalten. Unter anderem kann man mit Hilfe eines Scriptes bestimmte Daten doch einfach als formatierte html Seite an den Browser zurückschicken. Warum soll das nicht gehen? Was hat das überhaupt mit Stylesheets zu tun? Die braucht man in meinem Fall doch gar nicht!? Ich kenne mich mit Datenbanken nicht sooo aus, aber wenn ich Daten per Formular an ein Skript schicke, kann ich diese auch wunderbar in einer ordentlich formatierten html Seite darstellen. Wahrscheinlich sehe ich da irgendein Problem nicht, denn wenn das so einfach wäre wärt Ihr sicher selbst drauf gekommen.

        PS: Aber wie das mit nem Word Dokument geht, würd mich auch interessieren!

        Es sind wohl gegenwärtig Sachen in der Entwicklung, um MS Office-
        Dokumente maschinell erzeugen zu können, fertige Lösungen gibt es
        imho jedoch nicht.

        Aber man muß doch Daten in eine Vorlage in Word einfügen können, zur Not mit einem Makro oder so! Funktioniet doch ein bisschen ähnlich wie Serienbriefe, jedenfalls werden hier auch Daten in eine best. Vorlage eingefügt, nur dass hier immer direkt ALLE Daten eingefügt werden!
        Wenn das mit SQL nicht geht, dann aber doch bestimmt mit Access, oder?

        Wenn man das mit PDF macht, muß man sich dann extra den Acrobat dafür kaufen?

        "Wer lesen kann, ist klar im Vorteil!"
        In <?m=131127&t=25141> hat Antje einen Link gepostet, der u.a.
        diese Frage beantwortet. Wie soll es überhaupt funktionieren, auf
        einem UNIX-Server, wo mit PHP PDF-Dateien erzeugt werden, Adobe
        Acrobat zu installieren?

        Sorry, ich kenn mich halt mit solchen Sachen nicht so gut aus wie Du undviele andere hier, wenn ich so eine Seite sehe, sehe ich nur Links, die einige php Funktionen beschreiben. Mit PHP kenne ich mich leider noch gar nicht aus. Ích dachte man müßte halt ein pdf Formular erstellen und hochladen, aber wie es aussieht wird das direkt in eine pdf Datei geschrieben, nur die Frage, wie man sowas macht, aber darum gehts mir gar nicht, hätte mich halt nur unteressiert, da ich unter dem link nicht wirklich fündig geworden bin, da mir hierfür Kenntnisse fehlen!

        Ich hoffe so wars besser:-)
        Gruß
        Alex

        1. Hallo nochmal,

          Ich kenne die Lösung nicht, Du aber scheinbar schon, also verrate
          sie uns bitte.

          Unter anderem kann man mit Hilfe eines Scriptes bestimmte Daten doch einfach als formatierte html Seite an den Browser zurückschicken. Warum soll das nicht gehen? Was hat das überhaupt mit Stylesheets zu tun?

          Achim hat ein mögliches Problem bereits genannt, "Seitenumbrüchen".
          Wenn man also ein Rechnung schreibt, dann muß da schon sauber ge-
          trennt werden und diese, in CSS festgelegten Möglichkeiten, sind
          derzeit nur äußerst dürftig in die Browser implementiert.
          U.a. aus diesem Grund scheidet wohl die HTML-Variante (inkl. CSS)
          für ihn als Möglichkeit aus.

          Aber man muß doch Daten in eine Vorlage in Word einfügen können, zur Not mit einem Makro oder so! Funktioniet doch ein bisschen ähnlich wie Serienbriefe, jedenfalls werden hier auch Daten in eine best. Vorlage eingefügt, nur dass hier immer direkt ALLE Daten eingefügt werden!
          Wenn das mit SQL nicht geht, dann aber doch bestimmt mit Access, oder?

          Über eine HTTP-Umgebung kannst Du keine Daten in eine lokale Um-
          gebung einfügen, wie auch immer, es funktioniert nicht.
          Es wäre denkbar, dass Microsoft irgendwelche proprietären Sachen
          erfindet/erfunden hat, aber ich glaube mal eher nicht, so etwas
          geht eindeutig zuweit ;)

          Sorry, ich kenn mich halt mit solchen Sachen nicht so gut aus wie Du undviele andere hier, wenn ich so eine Seite sehe, sehe ich nur Links, die einige php Funktionen beschreiben. Mit PHP kenne ich mich leider noch gar nicht aus.

          PHP ist eine serverseitige Technologie, die u.a. eben auch PDF-
          Dateien erzeugen kann. Man benötigt dazu nicht Adobe Acrobat, es
          müssen nur die entsprechenden "Teile" von PHP installiert sein.
          Dann kann man z.Bsp. eine Datenbank abfragen und darauf in Echt-
          zeit das passende PDF-Dokument generieren und zum Download an-
          bieten.
          PHP bietet noch vielfältige weitere Möglichkeiten, so ist es z.Bsp.
          auch möglich, Software zum Download anzubieten und automatisch in
          diese Dateien die Partner-ID o.ä. einzufügen.

          Ich hoffe so wars besser:-)

          Auf jeden Fall, viel übersichtlicher, platzsparender, eben einfach
          besser, danke und weiter so :)

          Viele Grüße aus Dresden,
          Stefan Einspender

          1. Hi Stefan!

            Danke für Deine super-ausführlichen Antworten und dass Du Dir auf für so jemanden wie mich, der noch nicht so viel Ahnung hat und sicher auch noch viel falsch macht und machen wird so viel Zeit nimmst!

            Gruß
            Alex

        2. Hi Alex,

          Warum soll das nicht gehen? Was hat das überhaupt mit Stylesheets zu tun? Die braucht man in meinem Fall doch gar nicht!?

          Mein Problem würde sich auch stellen, wenn ich eine ganz gewöhnliche starre HTML-Seite mit erzwungenen Seitenumbrüchen drucken möchte. Mit Datenbanken etc. hat das erstmal gar nichts zu tun.

          Aber man muß doch Daten in eine Vorlage in Word einfügen können, zur Not mit einem Makro oder so! Funktioniet doch ein bisschen ähnlich wie Serienbriefe, jedenfalls werden hier auch Daten in eine best. Vorlage eingefügt, nur dass hier immer direkt ALLE Daten eingefügt werden!

          Das geht bestimmt auch. In meinem Ausgangsposting habe ich ja schonmal den Ansatz mit MyODBC angesprochen. Allerdings müsste sich Word in diesem Fall die richtigen Daten HOLEN. Das bedeutet, daß der Benutzer sein Angebot in dem Intranetsystem erstellt, dann Word anreißt, sich nochmal authetiziert um sich dann durch die Datenbank zu navigieren um sein eben erstelltes Dokument wieder aufzufinden. Allesinallem ist das IMHO etwas umständlich.

          Wenn das mit SQL nicht geht, dann aber doch bestimmt mit Access, oder?

          Die Frage versteh ich jetzt aber nicht so ganz. SQL ist eine Abfragesprache, wie sie in Access (Relationale Datenbank) auch benutzt wird...

          Viele Grüße
           Achim Schrepfer