Powered by Invision Power Board


Forum Rules Achtung:

Gib im Titel/Betreff deines Themas als Prefix bitte die Sprache/Technologie an, mit der du Probleme hast: [HTML], [JS], [CGI], [Flash] usw.

Solltest du einen kostenlosen Webspace Anbieter suchen oder anbieten können, dann schau dir bitte den Beitrag Webhosting Angebote an.

  Reply to this topicStart new topic

> HTML - Darstellung in Word beeinflussen
marmai
geschrieben am: 10.01.2011, 17:10
Quote Post





Gruppe: Moderatoren
Beiträge: 427
Mitglieds-Nr.: 5
Mitglied seit: 31.08.2004



Hallo zusammen.

Erst mal die Vorgeschichte: smile.gif

Wir benutzen eine in php geschriebene Software, zum Verwalten von Kundeninformationen. Diese Software kann automatisch Reports im "doc Format" erstellen: Benutzer klickt auf einen Button -> der Browser öffnet Word mit dem Dokument.
Das muss so bleiben, da die Anwender, die die Reports erzeugen, nicht unbedingt Informatiker sind und die Dokumente dann so komfortabel in Word anpassen können.

Man möchte das Format dieses Dokuments nun verändern. u.a. sollen an bestimmten Stellen Seitenwechsel stattfinden, die Seitenzahl in einem Footer mitgezählt werden, etc.

Ich hab also mal die Software von innen augeschaut und festgestellt, dass an sich nur html - Reports erstellt werden können. Um das jetzt als Word Dokument erscheinen zu lassen, schickt das PHP Script den HTML Code einfach als doc an den Browser (Mime, Content-type, ...).

Nun bin ich ziemlich ratlos, wie ich da Seitenwechsel, Seitenzahlen, Footer, etc. einbauen soll. Seitenwechsel würden noch per CSS (page-break-before, ...) funktionieren. Das kann allerdings nur Word >= 2007 interpretieren. Ich brauche eine Lösung die in Word >= 2003 funktioniert.
Für Footer, Seitenzahlen etc. sehe ich da irgendwie keine Möglichkeit, da HTML/CSS sowas nicht kennt.

Ich habe schon überlegt, das Ganze im rtf Format zu erzeugen (also echtes rtf zu erstellen), aber das ist mit dem Format welches wir bräuchten (Inhaltsverzeichnis, Überschriften, Header, Footer, Tabellen, ...) auch nicht wirklich simpel.

Hat irgendjemand eine Idee, wie man sowas mit möglichst wenig Aufwand lösen könnte?
Vielleicht mit PHP den HTML Code in rtf konvertieren und irgendwie Footer, Seitenwechsel, usw. da rein basteln? Dürfte aber auch nicht ganz einfach sein.

Beitrag bearbeitet von marmai am 10.01.2011, 17:12
PMEmail PosterUsers Website
Top
NetPanther
geschrieben am: 10.01.2011, 18:27
Quote Post


Administrator


Gruppe: Administratoren
Beiträge: 7.696
Mitglieds-Nr.: 1
Mitglied seit: 29.08.2004



Guten Abend,

wird die HTML Ausgabe denn sauber über Templates generiert oder klatscht das System die Tags nur irgendwie im Code aneinander? Technische Möglichkeiten zum Eingriff in die Word Dokumente sehe ich ehrlich gesagt eher nicht, dort wird der HTML Inhalt doch wahrscheinlich auch nur in Form eines Containers eingebettet.

Am Ehesten wirst du dem Problem wohl beikommen, wenn du dir eine eigene Exportfunktion mit Templates schreibst. Zumindest die in neuen Word Versionen genutzten Dateiformate sind XML-basiert und ließen sich dann auch erzeugen (alternativ ODT). Wie trivial dann die Erstellung von Seitenzahlen und manuellen Umbrüchen ist, sei aber mal dahin gestellt. Vielleicht bieten Bibliotheken wie Zend_Service_LiveDocx dir hier Hilfsmittel an.

MfG


--------------------
:: NetPanther :: NetPanther@gmx.net :: Website :: IRC Channel: #NetPanther ::

Das Leben ist eine Beta. Nichts ist vollkommen.
PMEmail PosterUsers WebsiteICQAOLYahooMSN
Top
marmai
geschrieben am: 10.01.2011, 21:08
Quote Post





Gruppe: Moderatoren
Beiträge: 427
Mitglieds-Nr.: 5
Mitglied seit: 31.08.2004



Leider ist an dieser Stelle nicht viel mit Templates. Die Ausgabe wird da dynamisch zur Laufzeit erzeugt. Sowohl Inhalt, als auch Format können individuell anders sein und werden erst bei der Erstellung im Code zusammengebastelt.

LiveDocx etc. habe ich mir auch schon angeschaut. Ich glaube nicht, dass es all das kann, was wir brauchen. Aber vielleicht lohnt sich hier auch mal ein genauerer Blick. Werde ich mir noch mal genauer anschauen.
PMEmail PosterUsers Website
Top
NetPanther
geschrieben am: 10.01.2011, 21:54
Quote Post


Administrator


Gruppe: Administratoren
Beiträge: 7.696
Mitglieds-Nr.: 1
Mitglied seit: 29.08.2004



Guten Abend,

mir ist da noch ein Artikel aus dem PHP Magazin in den Sinn gekommen, den ich kürzlich mal in den Fingern hatte. In den eZ Components gibt es auch eine Klasse Document, mit der sich Dokument in verschiedene andere Formate konvertieren oder händisch neue Dateien erstellen lassen. Das DOC Format von Word wird zwar nicht explizit unterstützt, dafür aber seit knapp über einem Jahr ODT. Und meines Wissens nach verstehen das Format zumindest jüngere Office Versionen ja auch. Dort gibt es auch zahlreiche Möglichkeiten zur Dokumentenformatierung mit einer Syntax, die CSS stark ähnelt. Ist wahrscheinlich alles noch mit ziemlich viel Handarbeit verbunden, aber vielleicht wäre das auch noch eine Alternative zum Zend Framework.

MfG


--------------------
:: NetPanther :: NetPanther@gmx.net :: Website :: IRC Channel: #NetPanther ::

Das Leben ist eine Beta. Nichts ist vollkommen.
PMEmail PosterUsers WebsiteICQAOLYahooMSN
Top
coyote
geschrieben am: 11.01.2011, 23:31
Quote Post





Gruppe: Mitglieder
Beiträge: 249
Mitglieds-Nr.: 141
Mitglied seit: 10.09.2004



Jenachdem wie umfangreich die Inhalte sind, wäre evtl. ein Serienbrief noch möglich. Mittels PHP wird die Datenuelle gefüllt. In WORD selber könnte man mit IF-Abfragen zu den Spalten (Mergefield) an bestimmten Stellen die Seitenumbrüche automatisch anzeigen lassen. Seitenzahlen in Kopf- oder Fußbereich werden dabei auch aktualisiert.

Geht das dann überhaupt noch über's Internet oder nur auf einem lokalen Rechner? Irgendwie muss ja WORD an die Datenquelle kommen ... ein absoluter (http://)-Pfad geht zwar, aber ob das die Sicherheitseinstellungen des Webservers erlauben. Oje, das wird glaube ich zu kompliziert. War nur sein ein Gedanke wink.gif

Beitrag bearbeitet von coyote am 11.01.2011, 23:35
PMEmail Poster
Top
marmai
geschrieben am: 12.01.2011, 21:01
Quote Post





Gruppe: Moderatoren
Beiträge: 427
Mitglieds-Nr.: 5
Mitglied seit: 31.08.2004



QUOTE (coyote @ 11.01.2011, 23:31)
Geht das dann überhaupt noch über's Internet oder nur auf einem lokalen Rechner? Irgendwie muss ja WORD an die Datenquelle kommen ... ein absoluter (http://)-Pfad geht zwar, aber ob das die Sicherheitseinstellungen des Webservers erlauben. Oje, das wird glaube ich zu kompliziert. War nur sein ein Gedanke  wink.gif

Das dürfte kein Problem sein, da es bei uns im lokalen Netz laufen wird. Wir können da also mehr oder weniger machen was wir wollen. smile.gif

Ich wüsste inzwischen auch noch eine andere Möglichkeit, wie es funktionieren könnte. Somit habe ich jetzt erst mal ein paar Varianten. Da muss ich jetzt einfach mal probieren und forschen, welche wohl am besten funktionieren wird.

Momentan komme ich aber nicht dazu, sind ein paar andere Dinge dazwischen gekommen. Vielleicht schaffe ich es irgendwann Ende nächster Woche mich wieder damit zu beschäftigen.

Beitrag bearbeitet von marmai am 12.01.2011, 21:02
PMEmail PosterUsers Website
Top
NetPanther
geschrieben am: 12.01.2011, 23:10
Quote Post


Administrator


Gruppe: Administratoren
Beiträge: 7.696
Mitglieds-Nr.: 1
Mitglied seit: 29.08.2004



QUOTE (marmai)
Ich wüsste inzwischen auch noch eine andere Möglichkeit, wie es funktionieren könnte.

Guten Abend,

und würdest du deine Weisheit auch mit uns teilen? mrgreen.gif Wie wäre es denn sonst noch mit einem ganz banalen Code der nachfolgenden Form? So bekäme man eine Seiteneinteilung je nach Interpretation von Word sicherlich auch noch hin.

CODE
<html>
<head>
   <style type="text/css">
     div.a4
     {
        width: 210mm;
        height: 297mm;

        margin-bottom: 5px;
        text-align: center;
        border: 1px dotted black;
     }
  </style>
</head>

<body>
  <div class="a4">Seite 1</div>
  <div class="a4">Seite 2</div>
  <div class="a4">Seite 3</div>
</body>

</html>


MfG


--------------------
:: NetPanther :: NetPanther@gmx.net :: Website :: IRC Channel: #NetPanther ::

Das Leben ist eine Beta. Nichts ist vollkommen.
PMEmail PosterUsers WebsiteICQAOLYahooMSN
Top
marmai
geschrieben am: 13.01.2011, 21:36
Quote Post





Gruppe: Moderatoren
Beiträge: 427
Mitglieds-Nr.: 5
Mitglied seit: 31.08.2004



Ich wollte die Möglichkeit lieber verschweigen weil sie "etwas" von hinten durch die Brust ins Auge wäre. rolleyes.gif
Also, zusätzlich zu der PHP Software existiert noch ein in Java geschriebener Server. Das PHP Script unterhält sich derzeit mittels RPC (Remote Procedure Call) mit dem Java Server und stößt da ein paar Verarbeitungen an. Die Möglichkeit, an dich ich dachte, wäre nun, das das PHP Script die generierte HTML Seite per RPC an den Java Server schickt, der diese Seite parst, daraus anschließend das Word Dokument erzeugt und irgendwo auf der Platte speichert. Das PHP Script kann dann die Datei von der Platte lesen und dem Browser zur Verfügung stellen.
PMEmail PosterUsers Website
Top
Cookman
geschrieben am: 19.02.2011, 15:38
Quote Post





Gruppe: Mitglieder
Beiträge: 854
Mitglieds-Nr.: 6
Mitglied seit: 02.09.2004



Ich war schon lange nicht mehr hier und ich weiß dass der letzte Eintrag hier schon etwas zurückliegt, aber wieso schickst Du Word nicht einfach das ganze als RTF? Das müsste doch Fußnoten, Seitenumbrüche und sowas hinbekommen und lässt sich sicherlich einfacher erzeugen als das Documentformat von Word.

Beitrag bearbeitet von Cookman am 19.02.2011, 15:39
PMEmail Poster
Top
marmai
geschrieben am: 19.02.2011, 21:43
Quote Post





Gruppe: Moderatoren
Beiträge: 427
Mitglieds-Nr.: 5
Mitglied seit: 31.08.2004



Ja, das hatte ich auch schon in Betracht gezogen.
Aber das RTF Format ist ziemlich ... kreativ. Und ich habe keine vernünftige Möglichkeit gefunden, RTF per PHP zu erstellen. Ich habe die Suche aber auch relativ schnell aufgegeben.

Ich habe inzwischen die Lösung umgesetzt, die ich zuletzt angesprochen hatte. In etwa zumindest. Funktioniert ganz gut bis jetzt. Ich erzeuge dann das RTF, oder alternativ auch PDF, mit Hilfe von JasperReports.
PMEmail PosterUsers Website
Top
0 Besucher zu diesem Thema (0 Gäste und 0 'versteckte' Mitglieder)
0 Mitglied(er):

Topic Options Reply to this topicStart new topic

 



[ DB Queries: 11 ]   [ Execution Time: 0.2850 ]   [ GZIP aktiviert ]