[PHP] Word genereren.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben op zoek naar een eenvoudige manier om op het internet word documenten te genereren vanuit een webbased CRM oplossing. Ik heb hetvolgende bedacht en uitgeprobeerd:

Je maakt een word document met opmaak. De woorden die je later wil vervangen plaats je tussen {}. Het word document sla je op als webpagina, en word genereert een htm bestand met ranzige code (maakt niets uit). Nu heb je een template en deze kun je uploaden naar de applicatie.

De applicatie kan dit template uitlezen en geeft een lijst van alle woorden die tussen { en } staan. Deze kunnen gekoppeld worden aan database velden. Op het moment dat je nu een dergelijke document genereerd replaced hij dus de {} velden door de geselecteerde database velden. Het document word gedownload met de .doc extensie.

Klaar. Je kunt nu heel eenvoudig word documenten genereren. Maar er zitten een aantal beperkingen aan die ik wil oplossen. (deze truc werkt overigens ook met excel).

-Plaatjes
-Headers en footers

Als je plaatjes gebruikt en je slaat het document op als htm, dan krijg je een htm bestand, een mapje met dezelfde naam en het toevoegsel _bestanden met daarin alle plaatjes, headers, en een filelist.xml waarin alle benodigde bestanden worden beschreven. Als je nu het word document genereert, dan heb je een document en mis je de overige bestanden. Ik weet niet hoe ik deze bestanden opnieuw in dit ene document moet plaatsen. Hard copy werkt in ieder geval niet. Iemand enig idee?

Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Een andere optie is om via COM Word aan te sturen vanuit je PHP script, en dat je wordbestand dus als het ware 'live' wordt geschreven en opgeslagen :) Zie de PHP manual voor meer info over COM. Overigens werkt COM alleen onder Windows, dus je moet wel een Windows-server hebben om dit grapje uit te halen (of misschien kan het met Linux ook wel, iig iets in die richting) :)

Acties:
  • 0 Henk 'm!

Verwijderd

En dit moet allemaal automatisch gebeuren?

Als je zoiets wil maken moet je eens Latex proberen, tenzij je echte Microsoft Word documenten wilt hebben.
Latex kun je verglijken met Microsoft Word zonder het WYSIWYG onzin en het is gewone ASCII taal.
Je kunt met latex templates aanmaken zoals dus headers en footers. En omdat het ascii is, is het heel makelijk om search en replace te doen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat klopt, met COM kan het ook, alleen niet op een windows machine. Daarbij komt dat het maken van een template op deze manier veel makkelijker is. Iemand maakt een template in word met welke opmaak hij/zij dan ook maar wil en upload deze. Nu kan deze al meteen gebruikt worden. Bovendien kun je in de browser al meteen zien hoe de word doc eruit gaat zien met opmaak en alles erop en aan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Latex, waar vind ik daar meer informatie over, en is het mogelijk om deze documenten in word te openen en te bewerken?

Acties:
  • 0 Henk 'm!

Verwijderd

excuses, verkeerde topic ...

[ Voor 86% gewijzigd door Verwijderd op 31-05-2003 22:46 ]


Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Verwijderd schreef op 31 mei 2003 @ 22:42:
En dit moet allemaal automatisch gebeuren?

Als je zoiets wil maken moet je eens Latex proberen, tenzij je echte Microsoft Word documenten wilt hebben.
Latex kun je verglijken met Microsoft Word zonder het WYSIWYG onzin en het is gewone ASCII taal.
Je kunt met latex templates aanmaken zoals dus headers en footers. En omdat het ascii is, is het heel makelijk om search en replace te doen.
RTF lijkt me dan een logischere optie. Dat snapt Word tenminste.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik bedenk me net iets....

Als de com objecten voor word niet op linux werken, is het dan niet mogelijk om een deel van de api van staroffice te gebruiken. Deze kan toch ook word compatible documenten genereren, of openoffice?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
is er een mogelijkheid om rtf te parsen naar html. Een groot voordeel van de huidige manier is dat je het complete worddocument in de browser kan zien, zoals het ook in word eruit ziet. Een soort preview modus, waarin alle velden al gereplaced zijn. Ik probeer het nu snel met een rtf bestand, maar de broser geeft de ruwe data aan en maakt er niet automatisch iets leesbaars van.

Acties:
  • 0 Henk 'm!

Verwijderd

Latex is typisch Linux achtig.

Maar het ligt eraan welke einddoel je ervoor hebt. Als je het wil gebruiken om het uiteindelijk uit te printen is latex perfect.

Enige nadeel van latex is dat er maar een beperkte online documentatie is. Dus dat wordt een boek kopen als je het echt wilt doorzetten. Dit omdat latex niet zo makkelijk taal is om ff te leren.

Om ff verder te helpen met je vraag.
Waarom zou je een word document eerst omzetten in HTML en dan weer terug naar een word document?
Dit was toch alleen om een example te weergeven in de browser?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, probeer het maar eens. Je ziet exact de opmaak van je document in de browser. Het voordeel is ook, dat als men de template heeft geupload dat dan een lijst zichtbaar is van alle var velden in het document. Deze kunnen nu eenmalig worden gekoppeld aan een mysql database zodat later de documenten meteen kunnen worden gegenereerd.

Misschien dat ik het beter zonder preview modus kan maken, das makkelijker.

[ Voor 11% gewijzigd door Verwijderd op 31-05-2003 23:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

kan je niet gewoon met fread() de geuploadde word-document doorzoeken naar tekst?

Acties:
  • 0 Henk 'm!

  • The Bad Seed
  • Registratie: November 2001
  • Laatst online: 17-09 06:48

The Bad Seed

Chaotic since 1983

Verwijderd schreef op 31 mei 2003 @ 22:59:
Latex is typisch Linux achtig.
Nee hoor, een LaTeX omgeving bestaat evengoed voor windows www.miktex.org
Maar het ligt eraan welke einddoel je ervoor hebt. Als je het wil gebruiken om het uiteindelijk uit te printen is latex perfect.
idd
Enige nadeel van latex is dat er maar een beperkte online documentatie is. Dus dat wordt een boek kopen als je het echt wilt doorzetten. Dit omdat latex niet zo makkelijk taal is om ff te leren.
even in mijn bookmarks snuffelen: http://www.cs.uu.nl/~piet/latexhnd.pdf een zeer goede nederlandstalige handleiding. En als je ergens op problemen stuit kan je in 99% van de gevallen door 2 minuten te googlen het antwoord vinden.

LaTeX is een prachtige tekstverwerker eens je er mee kan werken, maar hij is niet word-compatible. PDF voor afdrukken en HTML voor online bekijken genereren vanuit 1 brondocument is dan wel weer simpel.

Hail to the guardians of the watchtowers of the north


Acties:
  • 0 Henk 'm!

Verwijderd

Hoewel dit eigenlijk niet meer echt is waar dit topic over gaat: LaTeX is echt de moeite waard, maar is door het ontbreken van de WYSIWYG niet erg toegankelijk voor de 'normale' tekstschrijver. Het wordt veelal gebruikt in een wetenschappelijke omgeving (dus het schrijven van verslagen, dictaten, etc.).

Ik denk dat het de moeite waard is om eens te onderzoeken of dat php-probleem niet inderdaad via LaTeX kan worden opgelost. Het resultaat is namelijk uiteindelijk hetzelfde: een voor iedereen leesbare uitvoer.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Maar latex is een crime om mee te werken, zeker voor word-gebruikers. LyX is een enigszins fatsoenlijke editor ervoor, maar die onder windows installeren lijkt me geen pretje.

Voor het probleem van de topicstarter:
Het lijkt me, dat word op een of andere manier de bestandsnamen/koppelingen in de doc/htm-files verwerkt. Je hoeft niet perse .doc als extentie te gebruiken om het door word te laten openen lijkt me, maar ondanks dat kan je proberen een bestand in te voegen in word, het op te slaan en het verschil met de versie waar dat bestand niet ingevoegd was.

Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Waarom zou je hiertoe geen .pdf gebruiken? Die zijn prima te genereren, ook onder linux en zijn onder elk os wel te openen... Of moeten de mensen die zoiets daarna openene het ook kunnen bewerken? Dan gewoon een pdf to whatever convertor opsnorren en die op je site erbij zetten... Lijkt me makkelijker...

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kippenijzer schreef op 31 May 2003 @ 23:42:
Waarom zou je hiertoe geen .pdf gebruiken? Die zijn prima te genereren, ook onder linux en zijn onder elk os wel te openen...
Je gaat even voorbij aan het feit dat het document in word gemaakt wordt...
En dan geedit in de php-tool. En dan weer geopend wordt bij de client, in bijvoorbeeld word (maar dat deel is me nog niet zo duidelijk).
Of moeten de mensen die zoiets daarna openene het ook kunnen bewerken? Dan gewoon een pdf to whatever convertor opsnorren en die op je site erbij zetten... Lijkt me makkelijker...
pdf 2 word is niet heel gebruikelijk te vinden volgens mij, iig niet gratis te verspreiden.

Als het allemaal serversided gedaan moest worden en enkel clientside afgedrukt was ik het wel met je eens, dan is pdf een prima oplossing.

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Verwijderd schreef op 31 mei 2003 @ 22:54:
Een groot voordeel van de huidige manier is dat je het complete worddocument in de browser kan zien, zoals het ook in word eruit ziet. Een soort preview modus, waarin alle velden al gereplaced zijn. Ik probeer het nu snel met een rtf bestand, maar de broser geeft de ruwe data aan en maakt er niet automatisch iets leesbaars van.
Je kunt een RTF bestand bijv. in een iframe weergeven door 'm met het content-type application/msword naar de client te sturen. (text/rtf en application/rtf werken stom genoeg niet)

Internet Explorer (althans, de versies die ik gezien heb) laat zo'n bestand dan gewoon zien zonder Word in een apart venster te starten oid.

edit:
even wat beter gelezen waar het nou eigenlijk om ging :)

[ Voor 28% gewijzigd door Onno op 01-06-2003 01:28 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat is waar, misschien dat dat wel een goede oplossing is. Ik ga het meteen uitproberen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay. Ik ben een heel end. Alles werkt en documenten kunnen worden gegenereerd. Het leuke aan het rtf verhaal is dat headers en footers en plaatjes allemaal opgeslagen worden in het rtf document. Dus als je een template met logo erin hebt staan, werkt dit ook. Nu rest mij nog een lastig probleem.

Op het moment dat je het document in je browser hebt gegenereerd, opent deze word. Hierin kan men nog het document aanpassen, maar omdat het een CRM oplossing is moet er wel voor gezorgt worden dat als men het document aanpast, deze aangepaste versie wordt opgeslagen op de webserver. Ik weet dat dit bijna onmogelijk is, maar ik heb het andere ook ooit zien doen (vraag me niet waar) met een raar upload progie dat geinstalleerd was op mijn windows machine nadat ik dit crm voor het eerst had gebruikt.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Verwijderd schreef op 17 June 2003 @ 09:16:
Okay. Ik ben een heel end. Alles werkt en documenten kunnen worden gegenereerd. Het leuke aan het rtf verhaal is dat headers en footers en plaatjes allemaal opgeslagen worden in het rtf document. Dus als je een template met logo erin hebt staan, werkt dit ook. Nu rest mij nog een lastig probleem.

Op het moment dat je het document in je browser hebt gegenereerd, opent deze word. Hierin kan men nog het document aanpassen, maar omdat het een CRM oplossing is moet er wel voor gezorgt worden dat als men het document aanpast, deze aangepaste versie wordt opgeslagen op de webserver. Ik weet dat dit bijna onmogelijk is, maar ik heb het andere ook ooit zien doen (vraag me niet waar) met een raar upload progie dat geinstalleerd was op mijn windows machine nadat ik dit crm voor het eerst had gebruikt.
Dit is toch niet moeilijk op zich? Je zorgt gewoon dat je via javascript het rtf bestand weer naar je server POST door de content over te zetten naar een <FORM> element :)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-09 16:19

alienfruit

the alien you never expected

TeX is fantastisch als tekstverwerker voor groter lappen tekst bijv. verslagen en boekwerken. Enige irritante is dat plaatjes soms lastig is, bijv PDF wilt net weer een andere formaat plaatje hebben dan TeX. Dat vind ik nog wel jammer :-(


Overigens wat is het probleem om een library te maken onder Linux die Word97 documenten kan maken ?
http://www.wotsit.org/download.asp?f=wword60t
http://www.wotsit.org/download.asp?f=word8

[ Voor 30% gewijzigd door alienfruit op 17-06-2003 09:35 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Maar hoe kan dit, want op het moment dat het rtf document geopend word in een browser gebruikt hij hiervoor je locale versie van word. Hierin pas je de tekst aan en deze moet dus vanuit een locale app naar een form element in de browser worden gestuurd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heeft iemand een oplossing voor dit laatste probleem

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 18 June 2003 @ 12:06:
Heeft iemand een oplossing voor dit laatste probleem
Dat is een eigenschap van werken op het internet. Het is dus niet te omzeilen.
Het zou ook erg onveilig zijn als een programma zomaar informatie van de client af zou kunnen halen...

Localhost, sweet localhost

Pagina: 1